Кто-нибудь знает, как добавить события в события OnStart и OnEnd сеанса с использованием HttpModule (не касаясь файла Global.asax)?Присоединение событий к сеансу OnStart и OnEnd с использованием HttpModules
4
A
ответ
4
public void Init(HttpApplication app)
{
var ssm = app.Modules["Session"] as SessionStateModule;
ssm.Start += Foo;
ssm.End += Bar;
}
2
поведение Session OnStart можно эмулировать - в одном из ваших HttpModule's запроса событий - проверка, если HttpContext.Current.Session.IsNewSession установлена истина.
Однако есть одна ошибка! Если в объекте Session не задано значение, следующий запрос будет иметь положительное значение как IsNewSession. Поэтому, как только вы проверите флажок для IsNewSession, вы должны установить любое значение в объекте Session.
Google раскрывает это решение в комментариях этого блога: http://codebetter.com/blogs/karlseguin/archive/2006/06/12/146356.aspx, но автор описывает его как «что-то вроде кошмара», , Почему это так? Немного обеспокоен тем, что это может вызвать проблемы. – cbp
Только что нашел этот ответ, а также задайтесь вопросом, правильно ли это делать, после того, как кто-то сказал, что это «что-то вроде кошмара»? –