核心中的 NTLM 身份验证 HttpClient
Posted
技术标签:
【中文标题】核心中的 NTLM 身份验证 HttpClient【英文标题】:NTLM authentication HttpClient in Core 【发布时间】:2018-05-29 02:28:22 【问题描述】:我正在尝试使用 HttpClient 访问需要 NTLM 身份验证的 REST 服务。但是我不断收到 401 Unauthorized。 我的代码是这样的
private static void Main()
var uri = new Uri("http://localhost:15001");
var credentialsCache = new CredentialCache uri, "NTLM", CredentialCache.DefaultNetworkCredentials ;
var handler = new HttpClientHandler Credentials = credentialsCache ;
var httpClient = new HttpClient(handler) BaseAddress = uri, Timeout = new TimeSpan(0, 0, 10) ;
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = httpClient.GetAsync("api/MyMethod").Result;
我的目标框架是 netcoreapp2.0。如果我更改为 net461,它将起作用。不知道我做错了什么?
【问题讨论】:
看看这个:github.com/dotnet/corefx/issues/9234 非常感谢您的提问 - 它帮助我们在 .Net 上实施 NTLM 请求 【参考方案1】:Microsoft 已将此视为错误。可能会在核心 2.1 中发布修复
https://github.com/dotnet/corefx/issues/25988
【讨论】:
以上是关于核心中的 NTLM 身份验证 HttpClient的主要内容,如果未能解决你的问题,请参考以下文章
HttpClient 4.1.1 在使用 NTLM 进行身份验证时返回 401,浏览器工作正常
.NET HttpClient 在使用 NTLM 协商时不会在对 IIS 的请求之间保持身份验证