HttpClient での資格情報の処理を理解する
アプリケーション、特に偽装を使用するアプリケーションが ASP.NET MVC Web API を通じて Windows サービスと対話する必要がある場合、ユーザーの資格情報を転送することが重要です。 ただし、標準の UseDefaultCredentials = true
インスタンス内で HttpClient
を設定すると、これを達成できないことがよくあります。
HttpClient と WebClient の違い
興味深いことに、WebClient
も同様に構成すると、資格情報を正しく送信します。この違いは、2 つのクラス間の重要な動作の違いを強調しています。
解決策: HttpClientHandler の構成
HttpClient
を使用して認証情報を正しく伝達するには、基礎となる HttpClientHandler
:
<code class="language-csharp">var myClient = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true });</code>
このアプローチにより、HttpClient
がユーザーの資格情報を適切に送信し、サービスがリクエストを正しく認証できるようになります。 これにより、UseDefaultCredentials
オブジェクトで HttpClient
を直接使用するときに発生する認証情報の伝播の問題が解決されます。
以上がWebClient は行うのに、HttpClient は UseDefaultCredentials=true で資格情報を渡さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。