核心中的 NTLM 身份验证 HttpClient

NTLM authentication HttpClient in Core

我正在尝试使用 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,它就会工作。不确定我做错了什么?

Microsoft 已接受此错误。可能会在核心 2.1

中发布修复程序

https://github.com/dotnet/corefx/issues/25988