早上好。我们有一个带有Angular应用程序的asp.net核心2.1。我们使用asp.net身份。要注销用户,我们使用await HttpContext.SignOutAsync((;在visualstudio中运行应用程序并部署到根网站是很好的,但如果我们在IIS中部署到网站内的网络应用程序,则注销根本不起作用。我假设SignOutAsync删除了服务器端的所有信息,所以即使cookie没有被修改,服务器也会拒绝任何未来的请求,但事实似乎并非如此。知道吗?
它似乎已经解决了。使用await_signInManager.SignOutAsync((;工作良好。
我不知道使用HttpContext.SignOutAsync((有什么区别
您使用的是Asp.net核心身份,因此.AspNetCore.Identity.Application
cookie中的身份验证票证,您可以尝试通过设置特定的方案删除cookie:
await HttpContext.SignOutAsync(IdentityConstants.ApplicationScheme);
但使用SignInManager.SignOutAsync()
更好,它将删除以下cookie:
await Context.SignOutAsync(IdentityConstants.ApplicationScheme);
await Context.SignOutAsync(IdentityConstants.ExternalScheme);
await Context.SignOutAsync(IdentityConstants.TwoFactorUserIdScheme);