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 的内置列主密钥存储提供程序是预先注册的。

这会对字典进行浅表复制,以便应用在设置自定义提供程序列表后无法更改该列表。

适用于