SqlCommand.RegisterColumnEncryptionKeyStoreProvidersOnCommand 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在 實例上 SqlCommand 註冊加密金鑰存放區提供者。 如果已呼叫此函式,則會忽略使用 RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) 或 RegisterColumnEncryptionKeyStoreProvidersOnConnection(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) 方法註冊的任何提供者。 這個函式可以多次呼叫。 這會進行字典的淺層複製,讓應用程式在設定自訂提供者清單之後無法改變。
public:
void RegisterColumnEncryptionKeyStoreProvidersOnCommand(System::Collections::Generic::IDictionary<System::String ^, Microsoft::Data::SqlClient::SqlColumnEncryptionKeyStoreProvider ^> ^ customProviders);
public void RegisterColumnEncryptionKeyStoreProvidersOnCommand (System.Collections.Generic.IDictionary<string,Microsoft.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider> customProviders);
member this.RegisterColumnEncryptionKeyStoreProvidersOnCommand : System.Collections.Generic.IDictionary<string, Microsoft.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider> -> unit
Public Sub RegisterColumnEncryptionKeyStoreProvidersOnCommand (customProviders As IDictionary(Of String, SqlColumnEncryptionKeyStoreProvider))
參數
- customProviders
- IDictionary<String,SqlColumnEncryptionKeyStoreProvider>
自訂資料行加密金鑰提供者的字典
例外狀況
字典中以 「MSSQL_」 開頭的字串索引鍵。 此前置詞會保留給系統提供者。
備註
您可以在三個不同的層級向驅動程式註冊自訂主要金鑰存放區提供者。 三個註冊的優先順序如下所示:
- 如果個別命令註冊不是空的,將會檢查。
- 如果每個命令註冊是空的,則會檢查個別連線註冊是否不是空的。
- 如果個別連線註冊是空的,將會檢查全域註冊。
在註冊層級找到任何金鑰存放區提供者之後, 驅動程式將不會回復 至其他註冊來搜尋提供者。 如果提供者已註冊,但在層級找不到適當的提供者,則會擲回例外狀況,只包含已檢查之註冊中的已註冊提供者。
內建資料行主要金鑰存放區提供者可供 Windows 憑證存放區、CNG 市集和 CSP 預先註冊。
這會進行字典的淺層複製,讓應用程式在設定自訂提供者清單之後無法改變。