登陆的时候,用 Session["name"]=username; 初始化Session,转到只有登陆才能看到的页面,
在Page_Load()里面用  if( Session["name"] == null ) 进行验证,然后注销的时候用 Session["name"]=null,然后转到登陆页面,但是 注销以后点一下浏览器的后退,仍然回到了登陆后的页面
上,难道 浏览器的后退 不触发 Page_Load() 事件吗?
   验证到底应该怎么做?在线等ing.....

解决方案 »

  1.   

    try:Page_load()
    {
       if( !Page.IsPostBack )
       {
          if( Session["name"] == null )  {...}
       }
    }
      

  2.   

    if( Session["name"] == null )
    {
        Response.Redirect("login.aspx");
    }
      

  3.   

    if( !Page.IsPostBack )去掉。
    删除session用Session.remove
      

  4.   

    EnableViewState = false.不让他保留状态。这样在后退,或者刷新的时候就不保留原状态。
      

  5.   

    点后退一般不会重新向服务器发送请求,而是使用客户端缓存中的页面
    注销后服务器端的状态改变了,但是点“后退”仍然打开的是缓存了的为注销的页面
    可以加一句
    Response.Cache.Setcacheability(System.Web.HttpCacheability.Nocatch) 
    来禁止缓存
      

  6.   

    要让全部的页面都不进行缓存可以在Global.asax.cs中写
    protected  void  Application_BeginRequest(Object  sender,  EventArgs  e)  
    {  
           HttpContext.Current.Response.Cache.SetNoStore();  
    }