我在一个测试ASP.Net MVC 5网站上使用基本的登录(用于互联网网站)。
登录功能正常,但是当我尝试注销时它却没有发生作用。注销链接确实调用了以下控制器操作:
public ActionResult LogOff()
{
AuthenticationManager.SignOut();
return RedirectToAction("Index", "Home");
}
但是用户仍然保持登录状态。我该如何确保用户实际上已经注销了?
我在一个测试ASP.Net MVC 5网站上使用基本的登录(用于互联网网站)。
登录功能正常,但是当我尝试注销时它却没有发生作用。注销链接确实调用了以下控制器操作:
public ActionResult LogOff()
{
AuthenticationManager.SignOut();
return RedirectToAction("Index", "Home");
}
但是用户仍然保持登录状态。我该如何确保用户实际上已经注销了?
我之前遇到过这个问题,需要更改:
AuthenticationManager.SignOut();
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
假设您正在使用ApplicationCookie来存储登录信息。
AuthenticationManager
(根据自动生成的代码),而不是Authentication
。 - Krishna Guptapublic ActionResult Logout()
{
SignInManager.AuthenticationManager.SignOut();
return RedirectToAction("Index", "support", new { area = "" });
}
或者您可以像这样将注入的 SignInManager 用于控制器:
public ActionResult Logout()
{
_signInManager.AuthenticationManager.SignOut();
return RedirectToAction("Index", "support", new { area = "" });
}
没有区别。
我曾经遇到过无法注销的同样问题。我一直保持登录状态,只能重定向回主页视图。我使用Chrome浏览器尝试了一下,然后在Firefox和IE中也尝试了一下,但没有出现这个问题。然后我在Chrome中清除了我的Cookie,所有问题都得到了解决。如果其他人遇到这个问题,这可能是一个快速简单的第一步。