Кто-нибудь знает сайт или страницу или знает порядок выполнения событий класса HTTPApplication для выполнения события HTTPModule?
Я нашел Документацию MSDN для всех событий, но не отображает список шагов процесса, и я не был способный найти его.
Кто-нибудь знает сайт или страницу или знает порядок выполнения событий класса HTTPApplication для выполнения события HTTPModule?
Я нашел Документацию MSDN для всех событий, но не отображает список шагов процесса, и я не был способный найти его.
Возможно, это помогает
http://support.microsoft.com/kb/307985/en-us/
Класс HttpApplication предоставляет ряд событий, с помощью которых модули могут синхронизироваться. Следующие события доступны для модулей для синхронизации с каждым запросом. Эти события перечислены в последовательном порядке:
Для синхронизации модулей с каждой передачей запроса доступны следующие события. Порядок этих событий не является детерминированным.
См. статью для полной информации.
Документация библиотеки 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 или новее.
BeginRequest
Запрос начат. Если вам нужно что-то сделать в начале запроса (например, показывать рекламные баннеры в верхней части каждой страницы или какую-то переменную инициализацию).
AuthenticateRequest
Если вы хотите подключить собственную схему проверки подлинности (например, найдите пользователя в базе данных для проверки пароля или проверки информации заголовка в запросе HTTP).
AuthorizeRequest
Это событие используется внутренне для реализации механизмов авторизации (например, для хранения списков контроля доступа (ACL) в базе данных, а не в файловой системе).
ResolveRequestCache
Это событие определяет, может ли страница быть подана из выходного кэша. Если вы хотите написать свой собственный модуль кэширования (например, создать кеш файл, а не кеш памяти), тогда синхронизируйте это событие, чтобы определить, следует ли обслуживать страницу из кеша, или будет создана новая страница.
AcquireRequestState
Состояние сеанса извлекается из хранилища состояний. Если вы хотите создать свой собственный модуль управления состоянием, тогда синхронизируйте это событие, чтобы захватить состояние сеанса из вашего хранилища состояний.
PreRequestHandlerExecute
Это событие происходит до выполнения обработчика HTTP.
PostRequestHandlerExecute
Это событие возникает после выполнения обработчика HTTP.
ReleaseRequestState
Состояние сеанса сохраняется в хранилище состояний. Если вы создаете пользовательский модуль состояния сеанса, вы должны сохранить свое состояние в своем хранилище.
UpdateRequestCache
Это событие записывает выходные данные в выходной кэш.
EndRequest
Запрос завершен.
Хотите вызвать метод кэширования в событии PreSendRequestContent httpmodule. Проблема в том, что в моем приложении добавлен веб-заголовок и нижний колонтитул в соответствии с требованиями клиентов, и я не мог кэшировать эти содержимое изображений, javascript и css. В настоящее время я использую метод ReleaseRequestState httpmodule.
Принятый ответ устарел. Вот список событий в порядке их поднятия:
BeginRequest
AuthenticateRequest
PostAuthenticateRequest
AuthorizeRequest
PostAuthorizeRequest
ResolveRequestCache
PostResolveRequestCache
После события PostResolveRequestCache и до события PostMapRequestHandler создается обработчик события (который является страницей, соответствующей URL-адресу запроса). Когда сервер работает под управлением IIS 7.0 в интегрированном режиме и по крайней мере .NET Framework версии 3.0, возникает событие MapRequestHandler. Когда сервер работает под управлением IIS 7.0 в классическом режиме или более ранней версии IIS, это событие не может быть обработано.
PostMapRequestHandler
AcquireRequestState
PostAcquireRequestState
PreRequestHandlerExecute
PostRequestHandlerExecute
ReleaseRequestState
PostReleaseRequestState
UpdateRequestCache
PostUpdateRequestCache
LogRequest
PostLogRequest
EndRequest