我在控制器上有一个注销操作:
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都是正确的。因此,当我的视图呈现时,它仍然表现为用户已登录。有人可以提供解决方案和/或解释吗?
答案 0 :(得分:44)
FormsAuthentication.SignOut()
删除了身份验证Cookie,因此您需要在其后重定向,而不是返回一个视图,以便通知客户端:
public ActionResult Logoff()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index");
}
现在,在Index
操作中,用户将不再经过身份验证。