Session_End上的asp.net会话变量

时间:2010-01-08 19:24:14

标签: asp.net session

我需要访问global.asax.cs中Session_End事件的Session变量,但是HttpContext.Current为null,因此没有任何会话变量可以访问。

a)我可以用不同的方式访问用户会话,或者

b)在Session_End之前是否还有其他事件,我可以访问用户的会话变量吗?

3 个答案:

答案 0 :(得分:45)

HttpContext.Current内无法使用

Session_End,但您可以使用this.Session直接访问会话实例。

答案 1 :(得分:0)

你想做什么?

在Session_End之前没有事件可以用来访问Session对象。

如果存储了与上次使用Session对象相关的操作时间戳,然后检查了该操作时间戳,则可以了解应该何时结束。
(基于您的IIS设置/配置)。 但是,访问它的行为会延长Session对象的生命周期。

当然,您需要以某种方式检查这一点,方法是使用隐藏的Ajax回发来触发事件或类似事件。

但实际上我不建议这样做。你想要做什么,你需要这个?

答案 2 :(得分:-1)

除非你将Session_End用于在会话超时时采取行动的特定目的,否则依赖Session_End不是一个好主意。

我不相信有任何可靠的方法来捕获用户会话的结束(例如,当他们关闭浏览器时)。