【发布时间】:2019-08-28 16:04:24
【问题描述】:
我创建了一个使用 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");
});
并在我的 PC 上运行(使用我当前的域用户,也是管理员)。如果我运行 Kerberos Authentication Tester,它会显示它正在使用 NTLM(当 Kerberos 不可用时,这是 Negotiate 的备份计划)。我的应用显示身份验证是协商。
如果我运行 Fiddler 并打开自动身份验证,然后重复测试,则 Kerberos 身份验证测试器显示 None 作为身份验证(预期!),而我的应用显示身份验证是 Kerberos。
为什么 Kerberos Authentication Tester 总是回退到 NTLM?
PC 运行的是 Windows 10 1803。
谢谢,
【问题讨论】:
标签: asp.net-core kerberos windows-authentication ntlm-authentication