проблемы с httpmodule относительно сессии и т. д. - PullRequest
0 голосов
/ 28 октября 2011

У меня настроен httpmodule в моем веб-приложении asp.net, iis7, .net 4.0 и т. Д. У меня есть 2 проблемы, которые я бы хотел решить.

После отладки httpmodule я обнаружил, чтомодуль вызывается для ScriptResource.axd, т.е.он запускается, когда это называется.Есть ли способ, которым я могу предотвратить это или "выключить"?Я хочу, чтобы модуль выполнялся для некоторых моих httphandlers, сервисов .asmx и запросов страниц aspx, но я не хочу, чтобы накладные расходы вызывались для обработчиков ресурсов сценариев.

Во-вторых, доступно ли состояние сеанса в HttpModules, и если да,на каких мероприятиях это доступно?

1 Ответ

1 голос
/ 28 октября 2011

Как уже упоминалось, HttpModules включены для всех запросов в приложении, поэтому единственное, что вы можете сделать, - это просмотреть входящий URL-адрес в HttpModule и затем решить, какое действие предпринять, основываясь на этом.

Состояние сеанса загружается во время события AcquireRequestState, поэтому самая ранняя возможность проверить его по HttpModule - это событие PostAcquireRequestState.Состояние сеанса сохраняется в момент возникновения события ReleaseRequestState, поэтому любые изменения, внесенные в сеанс, должны быть внесены до этого момента.Поэтому вы можете получить доступ к состоянию сеанса в любой точке во время конвейера HttpApplication между этими двумя событиями

...