0

当我的用户会话已过期或我关闭浏览器时,我想在 asp.net 中触发一个事件。实际上,当他/她离开站点时,我想根据登录用户更新数据库中的某些内容。

4

2 回答 2

3

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

于 2012-11-21T07:43:54.957 回答
2

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

  • 进程外会话不会触发会话终止事件
  • 用户只需关闭浏览器、注销或关闭机器,无需任何通知您的站点
  • 甚至更糟 - 他们没有观看广告并积极查看您的网站,而是让浏览器保持打开状态并去喝酒,睡觉......
  • 或者浏览器可能会崩溃

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

可能最可靠的解决方案是让浏览器发出心跳请求,并以这种方式将用户标记为活动状态(在自定义数据库/存储中)。定期检查并标记一段时间内没有发送心跳请求的所有用户...

于 2012-11-21T07:49:18.833 回答