SqlConnection.RegisterColumnEncryptionKeyStoreProvidersOnConnection 方法

定義

在 實例上 SqlConnection 註冊加密金鑰存放區提供者。 如果呼叫此函式,則會忽略任何使用靜態 RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) 方法註冊的提供者。 此函式可以多次呼叫。 這會對字典進行淺層複製,讓應用程式在設定自訂提供者清單之後無法改變。

public:
 void RegisterColumnEncryptionKeyStoreProvidersOnConnection(System::Collections::Generic::IDictionary<System::String ^, Microsoft::Data::SqlClient::SqlColumnEncryptionKeyStoreProvider ^> ^ customProviders);
public void RegisterColumnEncryptionKeyStoreProvidersOnConnection (System.Collections.Generic.IDictionary<string,Microsoft.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider> customProviders);
member this.RegisterColumnEncryptionKeyStoreProvidersOnConnection : System.Collections.Generic.IDictionary<string, Microsoft.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider> -> unit
Public Sub RegisterColumnEncryptionKeyStoreProvidersOnConnection (customProviders As IDictionary(Of String, SqlColumnEncryptionKeyStoreProvider))

參數

customProviders
IDictionary<String,SqlColumnEncryptionKeyStoreProvider>

自訂資料行加密金鑰提供者的字典

例外狀況

已提供 Null 字典。

-或-

字典中的字串索引鍵為 Null 或空白。

-或-

SqlColumnEncryptionKeyStoreProvider字典中的值為 null。

字典中的字串索引鍵以 「MSSQL_」 開頭。 此前置詞保留給系統提供者。

備註

自訂主要金鑰存放區提供者可以在三個不同的層級向驅動程式註冊。 三個註冊的優先順序如下:

  • 如果每個命令註冊不是空的,則會加以檢查。
  • 如果每個命令註冊是空的,則會檢查每個連線註冊是否不是空的。
  • 如果每個連線註冊是空的,則會檢查全域註冊。

在註冊層級找到任何金鑰存放區提供者之後,驅動程式 將不會 回復到其他註冊以搜尋提供者。 如果提供者已註冊,但在層級找不到適當的提供者,則會擲回例外狀況,只包含已檢查之註冊中的已註冊提供者。

預先註冊適用于 Windows 憑證存放區、CNG 存放區和 CSP 的內建資料行主要金鑰存放區提供者。

這會對字典進行淺層複製,讓應用程式在設定自訂提供者清單之後無法改變。

適用於