如何工作Asp.net Session_End

时间:2015-12-30 10:03:27

标签: asp.net session logout sessionend

在我的asp.net Web应用程序中,当用户登录时,我将db中的isLogged标志设置为true。

当会话到期时(120分钟后),我使用Session_End方法设置false isLogged标志。

我在多种情况下测试此方法:

  • 当用户关闭浏览器而不点击退出按钮时,在超时时间之后session_end完成他的工作。
  • 当用户锁定他的设备或他的设备处于待机状态时,也会发生同样的事情。

我的问题是,有些用户如果没有点击退出按钮就会“保持记录”状态。 我跟你说实话,我不明白为什么当客户端设备没有连接到网站时,session_end有效。我以为服务器做了Session_end工作,但如果这是真的,为什么有些用户不能工作?

原因可能是浏览器或设备类型(移动与否)?

1 个答案:

答案 0 :(得分:0)

如果您为会话启用了滑动过期,并且浏览器会发出一些永久性的AJAX请求,那么只需打开浏览器窗口就可以使会话永远保持活动状态。至于会话结束事件的工作原理:

  

当Abandon方法已经运行时,会运行Session_OnEnd子例程   呼叫或会话过期时。会话到期时   Timeout属性指定的分钟数没有通过   请求为会议提出。