HttpContext.SignOutAsync不起作用, 不能退出登录,调用退出方法后,window.location.reload();不能返回登录页,cookie和session好像没清除
看你调用的方法名称SignOutAsync,大概猜到这是异步方法,可能是你调用异步方法退出之前,window.location.reload()就已经执行结束了,但是此时注销方法还没有执行结束,也就还没有清空cookie,所以导致没有跳转到登录页面。
关于HttpContext.SignInAsync无效的问题解决方法
可以参考下
http://www.fanxiaodong.com/?p=314
在控制器的注销操作中使用以下代码:
public async Task<IActionResult> Logout()
{
// Perform any additional logout-related logic here
await HttpContext.SignOutAsync();
return RedirectToAction("Login", "Account"); // Redirect to your login page
}
```c#
```
SignOutAsync这个是异步退出的方法,退出需要一定的时间,此时再去调用,window.location.reload();有可能会不成功,因为还没有完全退出。可以手动调用cookies的清除方法看看。
不要用异步退出
不能用HttpContext的SignOutAsync,试试用 signInManager 对象的 SignOutAsync(), 不带任何参数。
用的什么认证方式,或者你还有其他的重定向操作,导致删除不了
参考 https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.authentication.authenticationhttpcontextextensions.signoutasync?view=aspnetcore-7.0
回答部分参考、引用ChatGpt以便为您提供更准确的答案:
根据您提供的信息,HttpContext.SignOutAsync 方法没有起作用,无法退出登录并清除 cookie 和 session。有几个可能的原因和解决方法如下:
请注意,具体的解决方法可能因您的代码和环境而异。建议您仔细检查相关配置和代码,并参考身份验证和授权框架的文档以获取更具体的指导。