void Session_Start(object sender, EventArgs e) 
    {
        // 在新会话启动时运行的代码
        }    void Session_End(object sender, EventArgs e) 
    {
      
        Response.Redirect("~/Web/Validate.aspx");
       
                  
        // 在会话结束时运行的代码。 
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer 
        // 或 SQLServer,则不会引发该事件。    }
   ASP.NET 中的  Global.aspx类  ,这个两个方法怎么执行?
  我想在关闭这个会话的时候执行Sessions_End方法,如何才能让他执行?  赐教,在线等----

解决方案 »

  1.   

    Session_End的执行是无需页面访问的,不能写
    Response.Redirect("~/Web/Validate.aspx");你对asp.net的机制还没理解。你可以这样在page_Load里写
    if (Session["xx"] == null )
    {
    Response.Redirect("~/Web/Validate.aspx");
    }
      

  2.   

    问题补充: 我想做一个防止相同用户登录的程序,我在用户登录的时候把他 的状态ID更新为已登录
    在关闭浏览器和销毁Session的时候我就要把他的状态ID更新为未登陆,所以,后者我应该怎么写?
      

  3.   

    其实我这个Session_End方法是要写更新操作的,但是他不执行,所以我试试看他会不会跳转
      

  4.   

    .net我不清楚,jsp中我是写onunload函数,通过ajax操作去销毁session的,但是又有个问题,就是如果用户非正常退出的话,如断电、死机等。ie就不会执行这个onunload函数,所以还是有些问题的。
      

  5.   

    比如你现在做的是登录界面
    当你要登录到主界面的时候,要把他的用户名和密码保存到session.setAttribute("USER",user);
    然后主页面有个退出按钮,只要按退出就要返回到登录界面
    这是你在登录界面中写session.setAttribute("USER",null);
    这样就可以把session清空为null了
      

  6.   

    session为null就置为未登录即可,浏览器关闭了即session为null了
      

  7.   

    关闭窗口?
    这种做法是不可靠的,在关闭之前禁用网卡就没有办法了。比较简单准确的方法是设置比较短的Session.Timeout。或者ajax定时刷新服务器的状态,1-2分钟内没有刷新,就认为离开; 
      

  8.   

    配置文件里面下 Session服务器
      

  9.   

    那给它清空session.RemoveAttribute();
    每当你到登陆界面的时候给它清空
      

  10.   

    关闭浏览器是没办法的,比如多选项卡的关闭,或者干脆直接结束进程,web是一点办法没没有最好的办法是,设置超过一定时间没有“动作”就当作已经掉线