SqlConnection.RegisterColumnEncryptionKeyStoreProvidersOnConnection 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在 實例上 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>
自訂資料行加密金鑰提供者的字典
例外狀況
字典中的字串索引鍵以 「MSSQL_」 開頭。 此前置詞保留給系統提供者。
備註
自訂主要金鑰存放區提供者可以在三個不同的層級向驅動程式註冊。 三個註冊的優先順序如下:
- 如果每個命令註冊不是空的,則會加以檢查。
- 如果每個命令註冊是空的,則會檢查每個連線註冊是否不是空的。
- 如果每個連線註冊是空的,則會檢查全域註冊。
在註冊層級找到任何金鑰存放區提供者之後,驅動程式 將不會 回復到其他註冊以搜尋提供者。 如果提供者已註冊,但在層級找不到適當的提供者,則會擲回例外狀況,只包含已檢查之註冊中的已註冊提供者。
預先註冊適用于 Windows 憑證存放區、CNG 存放區和 CSP 的內建資料行主要金鑰存放區提供者。
這會對字典進行淺層複製,讓應用程式在設定自訂提供者清單之後無法改變。