Определить HttpModule main / Calling Request - PullRequest
2 голосов
/ 11 ноября 2008

Есть ли способ узнать основной / вызывающий запрос в httpmodule? Я хочу, чтобы код моего модуля запускался только для главной страницы aspx, а не для изображений и скриптов. Я мог бы проверить путь для «.aspx», но похоже, что должен быть лучший способ.

Ответы [ 2 ]

4 голосов
/ 11 ноября 2008

Из вашего модуля вы можете вызвать HttpContext.Current.Handler и посмотреть, является ли это Page. Возможно, вам придется сделать это в событии PostMapRequestHandler или в более позднем событии жизненного цикла.

Или, возможно, вы можете проверить, какой HttpHandlerFactory используется для запроса. Если это PageHandlerFactory, вы можете запустить свою логику, а в противном случае вы можете пропустить ее.

0 голосов
/ 11 ноября 2008

IIS не будет вызывать обработчик ASP.NET для изображений и сценариев *, поэтому HTTPModule должен работать только на ASPX-запросах.

  • Если вы не имеете в виду скрипты, которые используются как встроенный ресурс, т.е. webresource.axd.
...