Подтвердить что ты не робот

Порядок выполнения транзакций HTTPModule?

Кто-нибудь знает сайт или страницу или знает порядок выполнения событий класса HTTPApplication для выполнения события HTTPModule?

Я нашел Документацию MSDN для всех событий, но не отображает список шагов процесса, и я не был способный найти его.

4b9b3361

Ответ 1

Возможно, это помогает

http://support.microsoft.com/kb/307985/en-us/

Класс HttpApplication предоставляет ряд событий, с помощью которых модули могут синхронизироваться. Следующие события доступны для модулей для синхронизации с каждым запросом. Эти события перечислены в последовательном порядке:

  • BeginRequest
  • AuthenticateRequest
  • AuthorizeRequest
  • ResolveRequestCache
  • AcquireRequestState
  • PreRequestHandlerExecute
  • PostRequestHandlerExecute
  • ReleaseRequestState
  • UpdateRequestCache
  • EndRequest

Для синхронизации модулей с каждой передачей запроса доступны следующие события. Порядок этих событий не является детерминированным.

  • PreSendRequestHeaders
  • PreSendRequestContent
  • Ошибка

См. статью для полной информации.

Ответ 2

Документация библиотеки MSDN:

Вот события (выделены жирным шрифтом) и другие шаги в конвейере запроса для ASP.NET 4.0:

  • Подтвердите запрос, который проверяет информацию, отправленную браузером, и определяет, содержит ли она потенциально вредоносную разметку.
  • Выполните сопоставление URL-адресов, если какие-либо URL-адреса были настроены в разделе UrlMappingsSection файла Web.config.
  • Поднимите событие BeginRequest.
  • Поднимите событие AuthenticateRequest.
  • Поднимите событие PostAuthenticateRequest.
  • Поднимите событие AuthorizeRequest.
  • Поднимите событие PostAuthorizeRequest.
  • Поднимите событие ResolveRequestCache.
  • Поднимите событие PostResolveRequestCache.
  • [IIS 5.0/6.0]. Основываясь на расширении имени файла запрашиваемого ресурса (отображается в файле конфигурации приложения), выберите класс, который реализует IHttpHandler для обработки запроса. Если запрос предназначен для объекта (страницы), полученного из класса Page, и страница должна быть скомпилирована, ASP.NET компилирует страницу перед созданием ее экземпляра. [IIS 7.0] Поднимите событие MapRequestHandler. Соответствующий обработчик выбирается на основе расширения имени файла запрашиваемого ресурса. Обработчик может быть модулем с собственным кодом, таким как IIS 7.0 StaticFileModule или модулем управляемого кода, таким как класс PageHandlerFactory (который обрабатывает файлы .aspx).
  • Поднимите событие PostMapRequestHandler.
  • Поднимите событие AcquireRequestState.
  • Поднимите событие PostAcquireRequestState.
  • Поднимите событие PreRequestHandlerExecute.
  • Вызовите метод ProcessRequest (или асинхронную версию IHttpAsyncHandler.BeginProcessRequest) соответствующего класса IHttpHandler для запроса. Например, если запрос предназначен для страницы, текущий экземпляр страницы обрабатывает запрос.
  • Поднимите событие PostRequestHandlerExecute.
  • Поднимите событие ReleaseRequestState.
  • Поднимите событие PostReleaseRequestState.
  • Выполните фильтрацию ответов, если определено свойство Filter.
  • Поднимите событие UpdateRequestCache.
  • Поднимите событие PostUpdateRequestCache.
  • [IIS 7.0] Поднять событие LogRequest.
  • [IIS 7.0] Поднять событие PostLogRequest.
  • Поднимите событие EndRequest.
  • Поднимите событие PreSendRequestHeaders.
  • Поднимите событие PreSendRequestContent.

Примечание. События MapRequestHandler, LogRequest и PostLogRequest поддерживаются только в том случае, если приложение работает в интегрированном режиме в IIS 7.0 и .NET Framework 3.0 или новее.

Ответ 3

BeginRequest

Запрос начат. Если вам нужно что-то сделать в начале запроса (например, показывать рекламные баннеры в верхней части каждой страницы или какую-то переменную инициализацию).

AuthenticateRequest

Если вы хотите подключить собственную схему проверки подлинности (например, найдите пользователя в базе данных для проверки пароля или проверки информации заголовка в запросе HTTP).

AuthorizeRequest

Это событие используется внутренне для реализации механизмов авторизации (например, для хранения списков контроля доступа (ACL) в базе данных, а не в файловой системе).

ResolveRequestCache

Это событие определяет, может ли страница быть подана из выходного кэша. Если вы хотите написать свой собственный модуль кэширования (например, создать кеш файл, а не кеш памяти), тогда синхронизируйте это событие, чтобы определить, следует ли обслуживать страницу из кеша, или будет создана новая страница.

AcquireRequestState

Состояние сеанса извлекается из хранилища состояний. Если вы хотите создать свой собственный модуль управления состоянием, тогда синхронизируйте это событие, чтобы захватить состояние сеанса из вашего хранилища состояний.

PreRequestHandlerExecute

Это событие происходит до выполнения обработчика HTTP.

PostRequestHandlerExecute

Это событие возникает после выполнения обработчика HTTP.

ReleaseRequestState

Состояние сеанса сохраняется в хранилище состояний. Если вы создаете пользовательский модуль состояния сеанса, вы должны сохранить свое состояние в своем хранилище.

UpdateRequestCache

Это событие записывает выходные данные в выходной кэш.

EndRequest

Запрос завершен.

Ответ 4

Хотите вызвать метод кэширования в событии PreSendRequestContent httpmodule. Проблема в том, что в моем приложении добавлен веб-заголовок и нижний колонтитул в соответствии с требованиями клиентов, и я не мог кэшировать эти содержимое изображений, javascript и css. В настоящее время я использую метод ReleaseRequestState httpmodule.

Ответ 5

Принятый ответ устарел. Вот список событий в порядке их поднятия:

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    После события PostResolveRequestCache и до события PostMapRequestHandler создается обработчик события (который является страницей, соответствующей URL-адресу запроса). Когда сервер работает под управлением IIS 7.0 в интегрированном режиме и по крайней мере .NET Framework версии 3.0, возникает событие MapRequestHandler. Когда сервер работает под управлением IIS 7.0 в классическом режиме или более ранней версии IIS, это событие не может быть обработано.

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest

  18. PostLogRequest

  19. EndRequest

Источник