ASP.NET MVC真正使用Forms身份验证注销

时间:2010-05-11 11:54:18

标签: asp.net asp.net-mvc forms-authentication logout

我在控制器上有一个注销操作:

    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都是正确的。因此,当我的视图呈现时,它仍然表现为用户已登录。有人可以提供解决方案和/或解释吗?

1 个答案:

答案 0 :(得分:44)

FormsAuthentication.SignOut()删除了身份验证Cookie,因此您需要在其后重定向,而不是返回一个视图,以便通知客户端:

public ActionResult Logoff()
{
    FormsAuthentication.SignOut();
    return RedirectToAction("Index");
}

现在,在Index操作中,用户将不再经过身份验证。