2

目前,当我在注销后按下退格按钮然后打开前一页而不是将其重定向到登录页面时,我在我的注销页面的页面加载中使用了这个服务器端代码,它适用于 firefox、opera 和 chrome,但适用于 IE 和 Safari工作不正常。

这是我在注销页面的页面加载中的代码

protected void Page_Load(object sender, EventArgs e)
    {
            Session.Abandon();
            Session.Clear();
            Session.RemoveAll();
            HttpCookie cookie = new HttpCookie("UserInfo");
            cookie.Expires = DateTime.Now.AddDays(-1d);
            Response.Cookies.Add(cookie);
            Response.Redirect("Default.aspx", false);
            Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetNoStore();  
    }

你建议这个在 IE 和 Safari 上工作吗?

4

3 回答 3

2

我认为即使禁用后退按钮,用户也可以通过按“Alt + 箭头按钮”或“退格”返回。在浏览器中禁用后退按钮是不可能的。

于 2013-06-07T05:26:34.487 回答
-1

在母版页或任何 aspx 页面的正文标记中

添加这个标签

<body  onpageshow="if (event.persisted) noBack();">

在java脚本中

  <script type="text/javascript" language="javascript">
    window.onload = function () {
        noBack();
    }
    window.history.forward();
    function noBack() {
        window.history.forward();
    }
</script>

绝对不允许用户转到上一页

于 2013-06-07T05:55:29.520 回答
-1

步骤1。

在页面加载时添加以下 javascript 代码

    <script>
     function callme()
     {
        history.go(1);  
     }
    </script>

第2步。

不允许将页面保存在缓存中。在<head> 部分之间添加以下行

<meta http-equiv="Expires" CONTENT="0">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="Pragma" CONTENT="no-cache">

步骤 3。

单击注销。从浏览器清除历史记录并从服务器端重定向到登录页面。

 string strScript = "<script>var Backlen=history.length;history.go(-Backlen);window.location.replace('Login.aspx');</script>";




ClientScript.RegisterClientScriptBlock(this.GetType(), "ClearHistory", strScript);

编辑:

  • 您可以结合使用第 2 步和第 3 步
  • 或第 1 步和第 2 步
  • 或者全部三个
  • 推荐所有三个步骤
于 2013-06-07T05:28:15.803 回答