2016-12-13 4 views
3

Ich möchte eine Always Encrypted SQL 2016 DB in meiner .NET App mit einem Azure Key Vault zum Speichern der Verschlüsselungsschlüssel verwenden. Ich verfolge diesen Artikel so weit: https://blogs.msdn.microsoft.com/sqlsecurity/2015/11/10/using-the-azure-key-vault-key-store-provider-for-always-encrypted/Azure Key Vault .NET - Methode nicht gefunden

Aber ich erhalte eine Ausnahme, wenn ich diese Zeile des in dem Artikel vorgesehenen Code erreichen:

SqlColumnEncryptionAzureKeyVaultProvider azureKeyVaultProvider = 
new SqlColumnEncryptionAzureKeyVaultProvider(GetToken); 

Die Ausnahme ist:

Additional information: Method not found: 'Void Microsoft.Azure.KeyVault.KeyVaultClient..ctor(AuthenticationCallback)'. 

Ich habe meine Referenzen überprüft und alles scheint vorhanden zu sein. Die Callback-Methode GetToken-Authentifizierung ist ebenfalls vorhanden.

Kann jemand helfen? Vielen Dank.

+0

Bitte beachten Sie meine Antwort unten für die Lösung –

Antwort

4

Es scheint wie das Problem mit dem neuesten Microsoft.Azure.KeyVault nuget-Paket. Das Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider-Paket hat eine Abhängigkeit von Microsoft.Azure.KeyVault v 1.0.0, und wenn Sie die neueste Version (v 2.0.6) installieren, wird SqlColumnEncryptionAzureKeyVaultProvider gebremst. Downgrade von Microsoft.Azure.KeyVault-Paket auf v 1.0.0 und Sie werden in Ordnung sein ...

+0

Ich habe versucht, Downgrade, aber die Dinge haben nicht geklappt. Am Ende habe ich eine andere benutzerdefinierte Implementierung von SqlColumnEncryptionProvider verwendet, die den Azure Key Vault verwendet. –

0

Verwenden Sie bitte version 2.0.20170208 oder größer des nugget-Pakets, dies sollte Ihr Problem lösen.

Verwandte Themen