私のプロジェクトをASP.NET Core 1.0でMicrosoft Azure KeyVaultに統合したいと思います。しかし、Microsoft.Azure.KeyVaultパッケージは "netcoreapp1.0"フレームワークと互換性がありません(NuGetパッケージマネージャを使用してパッケージをダウンロードしようとしましたが、 "互換性のないパッケージ"というエラーメッセージが表示されます)。Azure KeyVaultを使用したASP.NETコア - KeyVaultClient.AuthenticationCallbackの委任エラー
"frameworks": {
"netcoreapp1.0": {
"imports": [
"net451",
"dotnet5.6",
"portable-net45+win8"
]
}
},
「net451」の枠組みをインポートした後、エラーが今なくなっている。したがって、私は、このブロックに示すproject.jsonで「net451」の枠組みをインポートします。今私は、このブロックに示されている新しいKeyVaultClientクラスを開始したい:
public void GetKeyVaultSecret()
{
var keyVaultClient = new KeyVaultClient(this.GetTokenAsync);
// ....
}
private async Task<string> GetTokenAsync(string authority, string resource, string scope)
{
var authenticationContext = new AuthenticationContext(authority);
var authenticationResult =
await authenticationContext.AcquireTokenAsync(resource, this.clientAssertionCertificate);
return authenticationResult.AccessToken;
}
問題は、私は、私は運なしで時間のためのソリューションを検索していthis.GetTokenAsync
にこのエラーメッセージが表示されましたです:Argument 1:cannot convert from 'method group' to 'KeyVaultClient.AuthenticationCallback'
Iの場合変更
var keyVaultClient = new KeyVaultClient(this.GetTokenAsync);
へ:
var keyVaultClient = new KeyVaultClient((authority, resource, scope) => this.GetTokenAsync(authority, resource, string.Empty));
私はまだエラーメッセージを受け取りました:Cannot convert lambda expression to type 'KeyVaultClient.AuthenticationCallback' because it is not a delegate type
誰でもこの問題を解決する方法を知っていますか?ありがとう。名前GetTokenAsync
と過負荷または拡張(つまり、複数のメソッド)を持っているので
よろしく、 アルビン
答えをいただきありがとうございます。私はこの問題を数ヶ月間放棄した後に再現しようとしました。しかし、その犯人は "パッケージはまだその時点でコアフレームワークをサポートしていなかった"ようだね?その時、最新のパッケージのバージョンは1.0.0で、今は2.0.0です。そこで、私はchangelogを探してみました。この投稿を見ました。https://docs.microsoft.com/en-us/azure/key-vault/key-vault-dotnet2api-release-notes。ポストは、「.NETコアはAzure Key Vault .NET/C#ライブラリの2.0バージョンでサポートされている」と述べています。これは、 "net451"フレームワークをインポートする必要なしに今の魅力のように動作します。 – samAlvin