注销后返回按钮问题

时间:2014-08-28 09:08:43

标签: c# javascript jquery html asp.net

我已经浏览了一些链接并花了好几个小时但是我的页面在注销单击后退按钮后仍然加载。这是我尝试的注销页面代码。

protected void Page_Load(object sender, EventArgs e)
    {
    if(Session[Constants.KeyValues.UserProfileSession]== null)
     {
            Response.Redirect("www.google.com", true);
     }          

        ////Clear cookie and redirect user to login page (Landing page before login).
        Response.AddHeader("pragma", "no-cache");
        Response.AddHeader("cache-control", "private");
        Response.CacheControl = "no-cache";
        Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetNoStore();
        FormsAuthentication.SignOut();
        Response.Cookies.Clear();

        HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));

        HttpContext.Current.Response.Cache.SetValidUntilExpires(false);
        HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        HttpContext.Current.Response.Cache.SetNoStore();


        Session.Clear();
        Session.Abandon();
        Session[Constants.KeyValues.UserProfileSession] = null;            
        Response.Write("<script type=\"text/javascript\">window.location.replace('www.google.com');</script>");
        //Response.Redirect("www.google.com", true);
    }

这是我的html页面

<!doctype html>
<html lang="ko">
<head>
    <title></title>
    <meta http-equiv="Cache-Control" content="no-cache" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <script type="text/javascript">
        function ClearHistory() {
            var backlen = history.length;
            history.go(-backlen);
            window.location.href = www.google.com
        }
    </script>
</head>
<body onload="ClearHistory();">
</body>
</html>

以下是会员登录后的页面加载代码

protected void Page_Load(object sender, EventArgs e)
    {
    if(Session[Constants.KeyValues.UserProfileSession]== null)
     {
            Response.Redirect(SPContext.Current.Site.Url + "/_layouts/ABC/ShoppingLandingBeforeLogin.aspx", true);
     }  }

以下是我尝试过的链接。

How to clear browser cache when user log off in asp.net using c#?

How to prevent browser and proxy caching of web pages

Browser back button issue after logout

Clear History using javascript

back-button-of-browser-issue-in-asp-net-logout

1 个答案:

答案 0 :(得分:0)

尝试使用它,它适用于所有浏览器。

    Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
    Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.0.
    Response.AppendHeader("Expires", "0"); // Proxies.