如何检测会话何时在asp.net中过期?

时间:2011-02-02 13:43:40

标签: asp.net session detect

我想跟踪用户是否退出或他们的会话是否过期。我现在需要准确地说他们的会话到期时间(在+/- 5分钟内)。现在,如果用户在浏览器中打开页面并在一天后返回,我会知道它在一天后尝试做某事时已过期 - 但实际上会话在一小时不活动后过期。

我希望在服务器上每5分钟运行一次脚本并检查哪些会话已过期并检测它们,然后在db中记录到期时间。 如何在服务器上以如此短的间隔连续运行脚本? 脚本究竟做了什么? 有更好的方法吗?

1 个答案:

答案 0 :(得分:10)

global.asax中,您可以捕获Session_End事件。有关详细信息,请参阅此问题:

请注意,五分钟超时是不可能的,因为您必须等待会话过期(通常是20分钟),然后才能检测到不活动状态。因此,如果你真的需要短暂的间隔,你需要

另一方面,你还需要

  • 确保使用打开的浏览器闲置五分钟不会导致会话被放弃(除非您希望用户在离开计算机以获取一杯咖啡时丢失会话)。例如,可以通过using JavaScript来实现这种“自动保持活动”。