.net core 2.1 HttpClient-401在重定向后未经授权

时间:2019-02-19 08:34:14

标签: .net .net-core kerberos dotnet-httpclient

我有一个采用Kerberos身份验证的Web.Api服务,比如说https://www.test.ru:89

我通过IIS从http://www.test.ru:88重定向到https://www.test.ru:89

端口88上的页面不需要身份验证。 当我尝试通过.NET Framework(4.x)上的HttpClient连接到Api时,一切正常-客户端遵循重定向,然后正确进行身份验证。 切换到.NET Core 2.1时,HttpClient成功重定向,但随后通过 WWW-Authenticate:Negotiate 进行 401未经授权,并停止。

如果在第一个呼叫上执行了身份验证,即https://www.test.ru:90发送401与Negotiate协商,然后重定向到https://www.test.ru:89-一切正常,两种身份验证均正常工作,请求成功。

似乎HttpClient身份验证中存在一些错误,因为否则我没有任何解释。任何提示将不胜感激。

此外,我尝试切换到旧的HttpHandler:

AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);

它不起作用

0 个答案:

没有答案