我想在我的.NET应用程序中使用Always Encrypted SQL 2016数据库和Azure Key Vault来存储加密密钥。到目前为止,我一直关注这篇文章: https://blogs.msdn.microsoft.com/sqlsecurity/2015/11/10/using-the-azure-key-vault-key-store-provider-for-always-encrypted/
但是当我到达文章中提供的代码行时,我收到了一个例外:
SqlColumnEncryptionAzureKeyVaultProvider azureKeyVaultProvider =
new SqlColumnEncryptionAzureKeyVaultProvider(GetToken);
例外是:
Additional information: Method not found: 'Void Microsoft.Azure.KeyVault.KeyVaultClient..ctor(AuthenticationCallback)'.
我检查过我的参考资料,而且每件事情都有所不同。 GetToken身份验证回调方法也在那里。
有人可以帮忙吗?感谢。
答案 0 :(得分:4)
似乎是最新的Microsoft.Azure.KeyVault nuget包的问题。 Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider程序包依赖于Microsoft.Azure.KeyVault v 1.0.0,如果安装了最新版本(v 2.0.6),则会对SqlColumnEncryptionAzureKeyVaultProvider进行制动。将Microsoft.Azure.KeyVault软件包降级到1.0.0版本,你会没事的......
答案 1 :(得分:2)
这是aspnet / Configuration的已知问题。见https://github.com/aspnet/Configuration/issues/569
答案 2 :(得分:0)
请使用version 2.0.20170208或更高版本的nuget包,这可以解决您的问题。