我需要访问global.asax.cs中Session_End事件的Session变量,但是HttpContext.Current为null,因此没有任何会话变量可以访问。
a)我可以用不同的方式访问用户会话,或者
b)在Session_End之前是否还有其他事件,我可以访问用户的会话变量吗?
答案 0 :(得分:45)
HttpContext.Current
内无法使用 Session_End
,但您可以使用this.Session
直接访问会话实例。
答案 1 :(得分:0)
你想做什么?
在Session_End之前没有事件可以用来访问Session对象。
如果存储了与上次使用Session对象相关的操作时间戳,然后检查了该操作时间戳,则可以了解应该何时结束。
(基于您的IIS设置/配置)。
但是,访问它的行为会延长Session对象的生命周期。
当然,您需要以某种方式检查这一点,方法是使用隐藏的Ajax回发来触发事件或类似事件。
但实际上我不建议这样做。你想要做什么,你需要这个?
答案 2 :(得分:-1)
除非你将Session_End用于在会话超时时采取行动的特定目的,否则依赖Session_End不是一个好主意。
我不相信有任何可靠的方法来捕获用户会话的结束(例如,当他们关闭浏览器时)。