ASP.NET Core 1.0 上のプロジェクトを Microsoft Azure KeyVault と統合したいと考えています。しかし、Microsoft.Azure.KeyVault パッケージはまだ "netcoreapp1.0" フレームワークと互換性がないようです (NuGet パッケージ マネージャーを使用してパッケージをダウンロードしようとすると、"互換性のないパッケージ" というエラー メッセージが表示されます)。したがって、このブロックに示されている project.json に「net451」フレームワークをインポートします。
"frameworks": {
"netcoreapp1.0": {
"imports": [
"net451",
"dotnet5.6",
"portable-net45+win8"
]
}
},
「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'
私が変われば
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
誰でもこの問題を解決する方法を知っていますか? ありがとう。
よろしく、アルビン