Angular 具有windows身份验证的ASP.NET核心应用程序提供了错误的用户标识
我有一个SPA ASP.NET核心应用程序,使用Angular作为前端,在IIS中运行(作为进程外),并使用Windows身份验证。当多个用户登录时,会出现一种奇怪的行为,此时只有其中一个在后端(控制器中)拥有用户。登录的另一个用户的标识,并且所有UI调用(从angular发出)都是用这个错误的用户完成的。如果刷新页面,则问题消失。我无法找到复制它的步骤,它似乎是随机出现的。控制器扩展ControllerBase并通过其用户属性访问用户,没有自定义代码用于身份验证或访问登录用户。 IIS配置方案是通过Startup.ConfigureServices()配置的:Angular 具有windows身份验证的ASP.NET核心应用程序提供了错误的用户标识,angular,iis,asp.net-core,windows-authentication,Angular,Iis,Asp.net Core,Windows Authentication,我有一个SPA ASP.NET核心应用程序,使用Angular作为前端,在IIS中运行(作为进程外),并使用Windows身份验证。当多个用户登录时,会出现一种奇怪的行为,此时只有其中一个在后端(控制器中)拥有用户。登录的另一个用户的标识,并且所有UI调用(从angular发出)都是用这个错误的用户完成的。如果刷新页面,则问题消失。我无法找到复制它的步骤,它似乎是随机出现的。控制器扩展ControllerBase并通过其用户属性访问用户,没有自定义代码用于身份验证或访问登录用户。 IIS配置方案
services.AddAuthentication(IISDefaults.AuthenticationScheme)代码>
身份验证包含在HTTP请求管道的Startup.Configure()中:
app.UseAuthentication()代码>
IIS中仅启用了Windows身份验证,其余都已禁用。
不确定是否相关,但控制器中没有标记为async的方法。
我尝试了ControllerBase.User和HttpContext.User。
该应用程序使用运行在Windows Server 2016和IIS 10.0.14393上的.NET Core 2.2和Angular 6