3

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

誰でもこの問題を解決する方法を知っていますか? ありがとう。

よろしく、アルビン

4

2 に答える 2