asp.net中关闭浏览器后怎么知道用户退出

来源:百度知道 编辑:UC知道 时间:2024/05/27 02:09:17
关闭浏览器,或突然断网等等,要怎样算出该用户的下线时间和状态,要怎么触发??请大家帮帮忙
新建一个“全局应用程序类”
打开新建的Global.asax你就知道了

这位大侠说的我也写了,不过里面的代码没有实现啊,我在Global.asax时的session_end方法里写了用户下线的通知,不过等session失效后数据库里存在的是该用户登录时的下线时间,且状态没有改变,还是在线,所以到现在还是没弄明白,session_end里的方法何时执行?执行时用户id是不是不存在了??

新建一个“全局应用程序类”
打开新建的Global.asax你就知道了

来学习 !
很多软件采用心跳机制,可是我也没有源码,理论知识上网找找吧,我不是这方面的高手

对于Asp.net来说,每一个Session都有一个生命期,默认为20分钟,这和用户是否关闭了浏览器没有关系,而是在二十分钟内,用户没有提交请求,就算session失效,这时就会触发Session_End事件,还有一种情况,就是应用程序关闭(指的是服务器关闭),这时所有未失效的Session会排成一个队列,一个一个去触发Session——End事件,这时对于一样的对象,比如Session["123"]如果客户端改变的话,这时在Session——end事件中查看其值,结果是不一样的!

可以去找些心跳机制的实现方法,比如客户端浏览器关闭或突然断网、关机 超时检测不到心跳就证明用户退出、之后就处理在线时间和状态