我用的是.net,做了个管理系统界面,实现了不能直接在IE上输入URL就能访问页面,必须登录后才能访问。
但是当我按“返回登录界面”BUTTON后,在点击IE上的后退键时他还是能直接访问那些已经访问过的页面,我用了Session[“name”] = "",Session.Abandon();可是按后退键的时候还是不能,请各位大侠指教。这是按钮响应的代码:private void Button_Click(object sender, System.EventArgs e)
{
Session["name"] = "";
Session.Abandon();
this.Response.Redirect("login.aspx",true);
}

解决方案 »

  1.   

    兄弟,你建一个空白页面LoginOut.aspx,在他的load时间中写上如下代码:
            if (!Page.IsPostBack)
            {
                Session.Clear();
                StringBuilder JScript = new StringBuilder();
                JScript.Append("<script type='text/javascript'>window.close();</script>");
                ClientScript.RegisterStartupScript(this.GetType(), "key0", JScript.ToString());
                Server.Transfer("登陆页面地址");
            }
    其他页面里面你点击退出的时候让他转到LoginOut.aspx页面上就OK了。
    O(∩_∩)O哈哈~
      

  2.   

      
      <html>   
      <head>   
      <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">   
      <title>屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键</title>   
      </head>   
      <body   onkeydown="KeyDown()"   onbeforeunload="location=location"   
      oncontextmenu="event.returnValue=false">   
        
      <script   language="Javascript"><!--   
          //屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键   
          //Author:   meizz(梅花雨)   2002-6-18   
        
      function   KeyDown(){   
          if   ((window.event.altKey)&&   
                  ((window.event.keyCode==37)||       //屏蔽   Alt+   方向键   ←   
                    (window.event.keyCode==39))){     //屏蔽   Alt+   方向键   →   
                alert("不准你使用ALT+方向键前进或后退网页!");   
                event.returnValue=false;   
                }   
        
                /*   注:这还不是真正地屏蔽   Alt+   方向键,   
                因为   Alt+   方向键弹出警告框时,按住   Alt   键不放,   
                用鼠标点掉警告框,这种屏蔽方法就失效了。以后若   
                有哪位高手有真正屏蔽   Alt   键的方法,请告知。*/   
        
          if   ((event.keyCode==8)||                         //屏蔽退格删除键   
                  (event.keyCode==116)){                     //屏蔽   F5   刷新键   
                event.keyCode=0;   
                event.returnValue=false;   
                }   
          if   ((event.ctrlKey)&&(event.keyCode==78)){       //屏蔽   Ctrl+n   
                event.returnValue=false;   
                }   
          if   ((event.shiftKey)&&(event.keyCode==121)){   //屏蔽   shift+F10   
                event.returnValue=false;   
                }   
          }   
        /*   另外可以用   window.open   的方法屏蔽   IE   的所有菜单   
      第一种方法:   
          window.open("你的.htm",   "","toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,resizable=yes,status=no,top=0,left=0")   
      第二种方法是打开一个全屏的页面:   
          window.open("你的.asp",   "",   "fullscreen=yes")   
        */   
      //   --></script>   
      <h2   align=center>屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键</h2>   
      </body>   
      </html>
      

  3.   


    不行啊,报错的 我用得是asp.net
      

  4.   

    是缓存的问题。
     protected void Page_Load(object sender, EventArgs e)
            {
                            Response.CacheControl = "No-cache";//清楚缓存代码;
                if (Session["master_id"] == null)
                {
                    Response.Write(" <script> alert( '未登陆,或登陆超时! ');location.href='/Login.aspx'</script> ");
                }
                        }
      

  5.   

    这是页面缓存造成的
    也就是说你点击后退的时候浏览器是从缓存文件夹中读取的文件。你可以再Meta中设置不缓存文件。<meta http-equiv="pragram" content="no-cache"> 
      

  6.   

     
    你建一个空白页面LoginOut.aspx,在他的load时间中写上如下代码:
    protected void Page_Load(object sender, EventArgs e)
        {
            Session.Clear();
            //表单验证退出
            System.Web.Security.FormsAuthentication.SignOut();
            HttpContext.Current.Response.Write("<script type='text/javascript'>parent.location='AdminLogin.aspx';</script>");
           
        }
      

  7.   

    五楼的:
      用<meta  http-equiv="pragram"  content="no-cache"
    不行啊!!