ASP.NET中的会话状态到期

时间:2010-02-16 23:30:20

标签: asp.net session-state

我正在创建一个内容管理系统但是有一个问题。我想在我的网站上做的是,当用户打开网站时,会为该用户创建一个新的sessionid,当用户关闭网站时,会清除sessionid。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

无法检测用户何时关闭您的网站或离开您的网站。在一段时间不活动(默认为20分钟)后,用户的会话对象将过期并自动清除。我建议在会话上查看MSDN article,这将覆盖您调整应用程序会话的选项。

另一方面,如果您希望在用户会话开始或到期时(由于不活动)执行自定义逻辑,您可以将Global.asax文件添加到您的应用程序并使用Session_Start和{ {1}}方法。

答案 1 :(得分:2)

这基本上是ASP.NET中会话的默认行为。

当用户关闭浏览器时,将删除维护会话ID的非持久性cookie。这实际上不会使会话到期,但由于不再存在对它的引用,它将在默认的20分钟内自动过期。关闭浏览器窗口后重新访问您网站的用户必须使用新会话。 (Source

答案 2 :(得分:0)

一个独立于Asp.net的简单解决方案是在会话数据上加上时间戳,并定期删除过期的条目。