【发布时间】:2014-10-25 17:05:16
【问题描述】:
我正在尝试使用 HttpClient 访问网站中的文件,但收到 401 Unauthorized。
网站配置了
<authentication mode="Windows" />
...
<authorization>
<allow users="*" />
</authorization>
并且 IIS 被配置为仅用于 Windows 身份验证。
通过在 URL 中指定地址,我可以使用 Internet Explorer 访问该文件,并且不会提示我输入用户名/密码。
当尝试使用 HttpClient 执行“相同”操作时,我得到 401 Unauthorized。
var httpClientHandler = new HttpClientHandler { UseDefaultCredentials = true };
using (var httpClient = new HttpClient(httpClientHandler))
{
var response = httpClient.GetAsync("http://example.com/welcome.png");
// The response is 401 Unauthorized.
}
我做错了什么?
更新:
它在使用基本身份验证并指定 httpClientHandler.Credentials = new NetworkCredential("DOMAIN\my.name", "mypassword") 时有效,但不用说这不是一个选项。需要 Windows 身份验证且不必指定用户名/密码。
【问题讨论】:
标签: httpclient windows-authentication