2017-01-05 4 views
3

私はAspNetCore TestServerを使用しており、NTLM認証用に設定されたAPIサービスに接続しようとしています。私が接続しているサービスは、System.Security.Claims.ClaimsPrincipal.Identityにアクセスする必要があります。私のコンソールアプリケーションから TestServer CreateClientとHttpClientHandler - howto?

次のように私は彼にHTTPClientを初期化することができ、それはしかし

HttpClientHandler handler = new HttpClientHandler() 
{ 
    UseDefaultCredentials = true, 
    PreAuthenticate = true 
}; 

HttpClient client = new HttpClient(handler); 

の作品、TESTSERVER CreateClient方法はHttpClientHandlerを受け付けません。 UseDefaultCredentialsを使用するように設定するにはどうすればよいですか?

+0

あなたはそれを把握しましたか?私は今この状況に遭遇しました、デジタル署名の必要条件はここにあります。 – fletchsod

答えて

0

オプションは、HttpClientHandlerにオーバーロードされたコンストラクタを作成し、TestServerのHttpClientHandlerをラップすることです。そこでは、SendAsyncメソッドからあなただけで私のあなたが行うことはできませんblog

0

のWindows認証で私の解決策を確認すること自由に感じなさいこの

if (_wrappedMessageHandler != null) 
{ 
    var method = typeof(HttpMessageHandler).GetMethod("SendAsync", BindingFlags.Instance | BindingFlags.NonPublic); 
    var result = method.Invoke(_wrappedMessageHandler, new object[] { request, cancellationToken }); 
    return await (Task<HttpResponseMessage>)result; 
} 
else 
{ 
    var response = await base.SendAsync(request, cancellationToken); 
    return response; 

} 

ようTESTSERVERのHttpClientHandler彼の方法SendAsyncを起動する必要がありますテストサーバー。関連する機能が今後のリリースで追加されました。 https://github.com/aspnet/Hosting/pull/1248。ミドルウェアによる回避策については、リンクされている問題とPRを参照してください。