Когда я смогу получить доступ к некоторым данным сессии в global.asax? - PullRequest
16 голосов
/ 19 апреля 2009

Я хочу проверить, содержит ли Session некоторые данные ключа / значения, в моем global.asax. Я не уверен, когда это самое раннее время (и название метода), чтобы проверить это.

спасибо:)

Ответы [ 4 ]

18 голосов
/ 10 ноября 2009

Я всегда верил, что Application_AcquireRequestState было первым событием в Global.asax, которое могло получить доступ к текущему сеансу. Это точно не Application_BeginRequest.

3 голосов
/ 21 августа 2012

MSDN случайно упоминает, что состояние сеанса получено во время события Application_PostAcquireRequestState. Хотелось бы, чтобы это было пересмотрено на странице Обзор жизненного цикла .

Последнее доступное состояние сеанса находится в Application_PostRequestHandlerExecute, поскольку оно сохраняется SessionStateModule во время следующего события Application_ReleaseRequestState .

0 голосов
/ 19 апреля 2009

Вам необходимо использовать 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).

0 голосов
/ 19 апреля 2009

Согласно тексту ссылки , самые ранние события в global.asax, к которым вы можете обращаться к объектам сеанса, - это когда global.asax запускает событие Session_Start

Session__Start : срабатывает, когда новый пользователь посещает веб-сайт приложения.
Session__End : срабатывает, когда время сеанса пользователя заканчивается, заканчивается или он покидает веб-сайт приложения

...