如何使用asp.net禁用Internet Explorer中的Backspace按钮

时间:2013-06-07 05:18:08

标签: javascript asp.net c#-4.0 caching

目前,当我在注销后按退格按钮然后打开上一页而不是将其重定向到登录页面时,我在我的注销页面的页面加载中使用了此服务器端代码,它适用于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上使用它吗?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:-1)

第1步。

在页面加载

上添加以下javascript代码
    <script>
     function callme()
     {
        history.go(1);  
     }
    </script>

第2步。

不允许将页面保存在缓存中。在&lt;之间添加以下行头&gt;节

<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步
  • 或全部三个
  • 建议采用所有三个步骤

答案 2 :(得分:-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>

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