【问题标题】:Azure Key Vault .NET - Method not foundAzure Key Vault .NET - 找不到方法
【发布时间】:2016-12-13 10:00:30
【问题描述】:

我想在我的 .NET 应用程序中使用 Always Encrypted SQL 2016 DB 和 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认证回调方法也有。

有人可以帮忙吗?谢谢。

【问题讨论】:

  • 解决方法请看我下面的回答

标签: c# azure encryption azure-keyvault always-encrypted


【解决方案1】:

最新的 Microsoft.Azure.KeyVault nuget 包似乎存在问题。 Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider 包依赖于 Microsoft.Azure.KeyVault v 1.0.0,如果您安装最新版本 (v 2.0.6),它会阻止 SqlColumnEncryptionAzureKeyVaultProvider。将 Microsoft.Azure.KeyVault 包降级到 v 1.0.0,你会没事的......

【讨论】:

  • 我尝试降级,但没有成功。我最终使用了另一个使用 Azure Key Vault 的 SqlColumnEncryptionProvider 自定义实现。
【解决方案2】:

这是一个已知的 aspnet/Configuration 问题。见https://github.com/aspnet/Configuration/issues/569

【讨论】:

    【解决方案3】:

    请使用 version 2.0.20170208 或更高版本的 nuget 包,这应该可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2019-07-28
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 2019-12-01
      • 2019-06-09
      相关资源
      最近更新 更多