我在控制器上有一个注销操作,因此:
public ActionResult Logoff() { var x = Request.IsAuthenticated; var y = User.Identity.IsAuthenticated; FormsAuthentication.SignOut(); Session.Abandon(); var a = Request.IsAuthenticated; var b = User.Identity.IsAuthenticated; return View(); }
然而,X、Y、A和B都是正确的。所以当我的视图呈现时,它的行为仍然像用户登录一样。有人能提供解决方案和/或解释吗?
FormsAuthentication.SignOut() 删除身份验证cookie,因此需要在其之后重定向,而不是返回视图,以便通知客户端:
FormsAuthentication.SignOut()
public ActionResult Logoff() { FormsAuthentication.SignOut(); return RedirectToAction("Index"); }
现在在 Index 操作将不再对用户进行身份验证。
Index