Конфигурирование и настройка Microsoft ASP.NET




Создание собственного модуля HTTP


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

Сначала создается базовая структура класса. Давайте посмотрим на нее.

C#

using System; using System.Web; using System.Collections;

public class CopyrightModule : IHttpModule { public void Init(HttpApplication application) { }

public void Dispose() { } }

VB.NET

Imports System Imports System.Web Imports System.Collections

Public Class CopyrightModule Implements IHttpModule

Public Sub Init(ByVal application as HttpApplication) _ Implements IHttpModule.Init

End Sub

Public Sub Dispose() Implements IHttpModule.Dispose End Sub

End Class

Это основа класса. Сначала класс реализует интерфейс IHttpModule, требующий методы Init и Dispose. Метод Init позволяет передать события HTTP в собственные обработчики событий. Метод Dispose позволяет удалять все соединения и ресурсы перед закрытием модуля. Возможно передать в метод Init несколько событий, каждое из которых возникает на различных стадиях процесса обработки запроса HTTP. В таблице 4.12 приведен перечень всех событий, которые можно связать с вашим HTTP-модулем.

Таблица 4.12. События HTTP приложения

СобытиеОписание
AсquireRequestStateВозникает, когда ASP.NET получает текущее состояние текущего запроса. Используйте событие при изменении состояния запроса.
AuthenticateRequestВозникает, когда ASP.NET устанавливает личность пользователя, сгенерировавшего запрос.
AuthorizeRequestВозникает, когда ASP.NET проводит авторизацию пользователя.
BeginRequestВозникает, когда ASP.NET запускает процесс обработки запроса. Это первое доступное вам событие данного процесса.
DisposedВозникает, когда приложение HTTP удаляется.
EndRequestЭто последнее событие в процессе обработки запроса в ASP.NET.
ErrorВозникает, когда приложение выбрасывает необработанное исключение.
PostRequestHandlerExecuteВозникает, когда завершается выполнение обработчика HTTP ASP.NET.
PreRequestHandlerExecuteВозникает непосредственно перед тем, как ASP.NET передаст запрос в обработчик HTTP.
PreSendRequestContentВозникает непосредственно перед тем, как ASP.NET отправит содержимое ответа пользователю.
PreSendRequestHeadersВозникает непосредственно перед тем, как ASP.NET отправит пользователю заголовки HTTP.
ReleaseRequestStateВозникает после того, как ASP.NET закончит выполнение всех обработчиков запросов. Оно запускает модули состояния, записывающие текущее состояние данных.
ResolveRequestCacheВозникает, когда ASP.NET завершает процесс авторизации. Затем оно запускает все имеющиеся модули кэширования для передачи кэшированных страниц вместо передачи запроса в обработчик.
UpdateRequestCacheВозникает, когда ASP.NET завершает выполнение обработчика HTTP. Затем оно запускает все имеющиеся модули кэширования для кэширования ответа для будущих запросов.
<


Содержание  Назад  Вперед