为什么注销只能在本地工作,而不能在服务器上工作

时间:2012-06-11 20:05:37

标签: c# asp.net-mvc logoff

我使用此代码进行注销

public ActionResult LogOff()
    {

         FormsAuthentication.SignOut();

        // Drop all the information held in the session
        Session.Clear();
        Session.Abandon();

        // clear authentication cookie
        HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
        cookie1.Expires = DateTime.Now.AddYears(-1);
        Response.Cookies.Add(cookie1);

        // clear session cookie
        HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
        cookie2.Expires = DateTime.Now.AddYears(-1);
        Response.Cookies.Add(cookie2);
        foreach (var cookie in Request.Cookies.AllKeys)
        {
            Request.Cookies.Remove(cookie);
        }

        return RedirectToAction("Index", "Home");

    }

并且它在本地工作正常,但是当我在服务器中发布我的应用程序时,即使用户已经注销,如果用户单击浏览器的Back按钮,页面仍会显示。

1 个答案:

答案 0 :(得分:0)

我希望你只是看到页面的缓存版本。

如果按CTRL + F5,它会要求您再次登录吗?

如果你真的想要禁用它,请参阅MiBu提供的this answer以防止缓存安全页面。