我想跟踪用户是否丢失或其 session 是否过期。我现在需要准确地知道他们的 session 何时过期(+/- 5 分钟内)。现在,如果用户在浏览器中打开页面并在一天后返回,当他在一天后尝试执行某些操作时,我会知道该页面已过期 - 但实际上, session 在闲置一小时后就过期了。
我希望在服务器上每 5 分钟运行一个脚本,检查哪些 session 已过期并检测它们,然后将过期时间记录在数据库中。 如何让脚本在服务器上以如此短的时间间隔连续运行? 该脚本到底做了什么? 有更好的方法吗?
最佳答案
在 global.asax
中,您可以捕获 Session_End
事件。有关更多详细信息,请参阅此问题:
请注意,五分钟的超时不太可能实现,因为您必须等待 session 过期(= 通常 20 分钟)才能检测到不活动。因此,如果您确实需要较短的间隔,则需要
另一方面,你还需要
- 确保打开浏览器五分钟不活动不会导致 session 被放弃(除非您希望用户在离开计算机去喝咖啡时丢失 session )。这种“自动保活”可以例如通过using JavaScript来实现。 。
关于asp.net - 如何在 ASP.NET 中检测 session 何时过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4875146/