我有一个SPA ASP.NET Core应用程序,该应用程序使用Angular作为前端,在IIS中运行(作为进程外),并使用Windows身份验证。当多个用户登录时,这是一种奇怪的行为,此时,只有一个用户在后端(在控制器中)具有另一个已登录用户的 User.Identity 。用户界面调用(从角度进行)是由该错误的用户执行的。如果刷新页面,该问题将消失。我找不到重现它的步骤,它似乎是随机出现的。控制器扩展了 ControllerBase 并通过 User 属性指定用户,没有自定义代码用于身份验证或访问登录的用户。
通过Startup.ConfigureServices()配置了IIS配置方案:services.AddAuthentication(IISDefaults.AuthenticationScheme);
身份验证包含在HTTP请求管道的Startup.Configure()中:
app.UseAuthentication();
在IIS中仅启用Windows身份验证,其余的均被禁用。 不确定是否相关,但是控制器中没有标记为异步的方法。 我尝试同时使用 ControllerBase.User 和 HttpContext.User 。 该应用程序使用 .NET Core 2.2 和 Angular 6 ,它们在 Windows Server 2016 和 IIS 10.0.14393 上运行。