【发布时间】:2009-04-19 08:10:41
【问题描述】:
我想在我的 global.asax 中检查 Session 是否包含一些键/值数据。我不确定最早可能的时间(和方法名称)是什么时候来检查这个。
谢谢:)
【问题讨论】:
标签: asp.net session global-asax
我想在我的 global.asax 中检查 Session 是否包含一些键/值数据。我不确定最早可能的时间(和方法名称)是什么时候来检查这个。
谢谢:)
【问题讨论】:
标签: asp.net session global-asax
我一直认为Application_AcquireRequestState 是 Global.asax 中第一个可以访问当前会话的事件。绝对不是Application_BeginRequest。
【讨论】:
MSDN 随便提到会话状态是在 Application_PostAcquireRequestState 事件期间获取的。我希望它在Life Cycle Overview 页面上重述。
您可以访问的最新会话状态在 Application_PostRequestHandlerExecute 中,因为它由 SessionStateModule 在下一个事件 Application_ReleaseRequestState 期间保存。
【讨论】:
您需要使用BeginRequest (http://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest.aspx),因为它是HttpApplication 对象(Global.asax 继承)上触发的第一个事件。
您将在此处了解有关 ASP.NET 应用程序生命周期的更多信息 - http://msdn.microsoft.com/en-us/library/ms178473.aspx(这是针对 IIS 5 和 IIS 6)。
【讨论】:
根据link text,global.asax 中最早可以访问会话对象的事件是 global.asax 触发 Session_Start 事件时
Session__Start:当新用户访问应用程序网站时触发。
Session__End:当用户会话超时、结束或离开应用程序时触发网站
【讨论】: