ASP.NET MVC通过表单身份验证真正注销

ASP.NET MVC通过表单身份验证真正注销,asp.net,asp.net-mvc,forms-authentication,logout,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

我在控制器上有注销操作,因此:

    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,因此您需要在它之后重定向,而不是返回视图,以便通知客户端:

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

现在在
索引
操作中,用户将不再进行身份验证。

Darin的右键。我有时会返回一个“return Redirect(FormsAuthentication.LoginUrl);”,它会将用户发送回您在web.config的身份验证区域中声明的登录页面。同样的事情真的。。。