ms sqlserver数据库 用户表userinfo 有一个字段inOnLine 用户是否在线,当用户登录后 isonline = 1 同时创建一个Session["User"]传递用户信息问题在於,当一段时间以后Session自动销毁,我能否捕捉到session的销毁,在他销毁之前,先将isonline = 0 ?我是新手,求详解。谢谢。

解决方案 »

  1.   

    新建Global.asax
        void Session_End(object sender, EventArgs e) 
        {
            // 在会话结束时运行的代码。 
            // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
            // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer 
            // 或 SQLServer,则不会引发该事件。    }
    不过不是很准的
      

  2.   


    这个Sesion_End 是Session["User"]么?怎么判断?
      

  3.   

    if(session["user"]==null)
    {
        update
    }
      

  4.   


    session["user"]==null 都等于空了 ,我还怎么从session里取值? 就不知道Update的User的id了啊
      

  5.   

    1.里面不要写错误代码..
    2.在销毁之前都会调用.包括异常引起的Session销毁
    3.此时不为空,在此方法之后就为空了
      

  6.   

    解释一下,特别是第一条
    在此方法中,不要使用什么HTTP 上下文相关的,特别是Request 和Response
    至少在ASP中这个方法出了错也不会报错,但是你的代码就被无视了