首页 >后端开发 >C++ >为什么我的 HttpClient 不将凭据传递给我的 Windows 服务?

为什么我的 HttpClient 不将凭据传递给我的 Windows 服务?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-23 14:22:16934浏览

Why Doesn't My HttpClient Pass Credentials to My Windows Service?

解决 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn