在ASP.NET Core中,Windows身份验证在同一计算机/域上时会出现问题,因为在每个Internet Explorer(或其他浏览器)会话中,都会出现单独的Windows身份验证挑战。这意味着即使是相同的用户在同一浏览器中访问多个ASP.NET Core应用程序时,他们也会被多次要求输入凭证。以下代码显示了如何使浏览器对同一计算机或域上的多个应用程序只进行一次Windows身份验证挑战:
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.Configure(options =>
{
options.AutomaticAuthentication = false;
});
services.Configure(options =>
{
options.ForwardClientCertificate = false;
});
services.AddMvc();
这段代码通过禁用IISServerOptions和IISOptions的自动认证选项来解决该问题,并使用AddAuthentication将其添加到应用程序服务。最后,使用AddMvc添加MVC服务。