我有一个采用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);
它不起作用