Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 51405|Ответ: 5

[ASP.NET] asp.net интерфейс IHttpModule подробно объясняется

[Скопировать ссылку]
Опубликовано 13.03.2018 21:46:06 | | | |
Написано спереди

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

IHttpModule работает

Друзья, знакомые с asp.net жизненным циклом, должны знать, что выполнение HttpModule выполняется до HttpHandler, а затем после серии событий HttpModule, затем HttpHandler, а затем некоторых событий HttpModule. Для подробностей ознакомьтесь с следующей схемой жизненного цикла.



HttpHandler — это место для обработки http-запроса, HttpModule — «единственный способ» для HTTP-запроса, поэтому вы можете добавить необходимую информацию поверх HTTP-запроса до передачи этого HTTP-запроса в реальный центр обработки запросов (HttpHandler), либо выполнить дополнительную работу с перехваченной информацией HTTP-запроса. Или в некоторых случаях просто завершать HTTP-запросы, соответствующие определённым условиям, которые могут служить фильтром.

HTTP-запрос будет передан контейнеру HttpHandler в какой-то момент (событие ResolveRequestCache) во время доставки контейнера HttpModule. После этого события контейнер HttpModule создаёт входящий экземпляр HttpHandler, но вместо того чтобы отказаться от контроля над HTTP-запросом, он продолжает запускать события AcquireRequestState и PreRequestHandlerExcute. После события PreRequestHandlerExcute окно HttpModule временно передаёт управление контейнеру HttpHandler для обработки реальных HTTP-запросов.

Внутри контейнера HttpHandler выполняется метод ProcessRequest для обработки HTTP-запросов. После того как контейнер HttpHandler обрабатывает весь HTTP-запрос, он возвращает управление HttpModule, который продолжает передавать обработанный HTTP-запрос постепенно до возвращения клиенту.

Пример

Структура проекта



Код MyHttpModule

Зарегистрируйте пользовательский HttpModule в web.config

Просмотр страницы Default.aspx



Так каков порядок выполнения серии событий в жизненном цикле?


Просмотр результатов



Используйте HttpModule для завершения HTTP-запроса


результат



сводка

Здесь мы представляем самый важный интерфейс в жизненном цикле asp.net — IHttpModule, который можно описать как интерфейс событий, поскольку в методе Init в классе реализации можно регистрировать различные события жизненного цикла и определять различные логические элементы в событии.





Предыдущий:Asp.Net IHttpHandler представлен
Следующий:C# должен модифицировать этот обход заголовка с соответствующими атрибутами или методами
 Хозяин| Опубликовано 13.03.2018 21:46:47 |
. NETFramework 4.5 предоставляет 25 стандартных событий.


 Хозяин| Опубликовано 13.03.2018 21:47:03 |
. NETFramework 4.0, которая предоставляет 19 стандартных событий.

1. BeginRequest: Первое событие asp.net начало обработки запроса, указывающее на начало обработки.

2. AuthenticateRequest: запрос на аутентификацию, обычно используется для получения пользовательской информации о запросе.

3. PostAuthenticateRequest: Запрошенная пользовательская информация.

4. AuthorizeRequest: авторизация, обычно используется для проверки разрешения пользователя.

5. PostAuthorizeRequest: Запрос пользователя авторизован.

6. ResolveRequestCache: Получите результаты обработки предыдущего кэша обработки, если он уже кэшировался, обрабатывать запрос не требуется, и напрямую возвращайте кэшированные результаты.

7. PostResolveRequestCache: Кэш обработан.

8. PostMapRequestHandler: Запрашиваемый объект процессора создан на основе запроса пользователя.

9. AcquireRequestState: Получите статус запроса, который обычно используется для сессии

10. PostAcquireRequestState: Сессия получена

11. PreRequestHandlerВыполнить: Подготовьте обработчик исполнения.

12. PostRequestHandlerExecute: обработчик выполнен

13. ReleaseRequestState: Состояние запроса на освобождение.

14. PostReleaseRequestState: Статус запроса опубликован.

15. UpdateRequestCache: Обновить кэш.

16. PostUpdateRequestCache: Кэш обновлён.

17. LogRequest: запрошенная операция журнала

18. PostLogRequest: Операция ведения журнала по запросу завершена.

19. EndRequest: Запрос обрабатывается.
Опубликовано 22.04.2019 9:48:33 |
Добавьте в закладки
Опубликовано 30.09.2021 19:19:09 |
Недавно учился. Читайте внимательно
 Хозяин| Опубликовано 14.07.2023 20:26:36 |
ASP.NET MVC считает запросы на основе модулей IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com