当Session过期或浏览器关闭时,在asp.net中触发一个事件

时间:2012-11-21 07:36:56

标签: c# asp.net vb.net

我希望在用户会话过期或关闭浏览器时在asp.net中触发事件。 实际上我想在他/她离开网站时根据登录用户更新数据库中的一些东西。

2 个答案:

答案 0 :(得分:3)

请在此处查看会话状态事件文档:http://msdn.microsoft.com/en-us/library/ms178583.aspx

答案 1 :(得分:2)

不幸的是,这个问题非常接近于“我希望在计算机关闭后保存我的数据”......非常难以预测。

  • 不会为进程外会话触发会话终止事件
  • 用户只需关闭浏览器,注销或转动机器即可通知您的网站
  • 甚至更糟糕 - 不是看广告而是积极地查看您的网站,而是让浏览器保持打开并去喝酒,睡觉......
  • 或浏览器可能崩溃

现在有时您可以尝试处理浏览器的卸载事件......您可能有足够的时间发送响应。

可能最可靠的解决方案是从浏览器获取心跳请求并将用户标记为活动(在自定义数据库/存储中)。定期检查并标记一段时间内未发送心跳请求的所有用户...