我创建了一个使用 HTTP.SYS 和 Windows 身份验证的 ASP .NET core 2.2 应用程序:
.UseHttpSys(options =>
{
options.AllowSynchronousIO = true;
options.Authentication.Schemes = Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes.Negotiate | Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes.Kerberos;
options.Authentication.AllowAnonymous = false;
options.MaxConnections = null;
options.MaxRequestBodySize = 30000000;
options.UrlPrefixes.Add("http://192.168.1.1:5000");
});
并在我的电脑上运行(使用我当前的域用户,也是管理员)。如果我运行 Kerberos Authentication Tester,它会显示它正在使用 NTLM(当 Kerberos 不可用时,这是 Negotiate 的备份计划)。我的应用程序显示身份验证是协商。
如果我运行 Fiddler 并打开自动身份验证,然后重复测试,则 Kerberos 身份验证测试器将 None 显示为身份验证(预期!),而我的应用程序显示身份验证是 Kerberos。
为什么 Kerberos Authentication Tester 总是回退到 NTLM?
PC 运行的是 Windows 10 1803。
谢谢,