解决 HttpClient 凭据问题
使用 HttpClient 访问需要身份验证的 Windows 服务时,凭据可能无法正确传递。这种情况经常发生在 ASP.NET MVC Web API 和 IIS 模拟中。
HttpClient 和 WebClient 处理凭据方式的差异是关键。 HttpClient 的 UseDefaultCredentials
属性旨在处理凭据检索,但它可能不可靠。
为了保证凭证传输,请在 UseDefaultCredentials
:true
中显式将 HttpClientHandler
设置为
<code class="language-csharp">var httpClient = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true });</code>
这告诉 HttpClient 使用操作系统的默认凭据。这反映了 WebClient 的行为,确保发起 Web 应用程序请求的用户得到 Windows 服务的正确身份验证。
以上是为什么我的 HttpClient 不将凭据传递给我的 Windows 服务?的详细内容。更多信息请关注PHP中文网其他相关文章!