Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 51405|Отговор: 5

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

[Копирай линк]
Публикувано в 13.03.2018 г. 21:46:06 ч. | | | |
Написано отпред

Относно релевантното съдържание на IHttpModule, бях попитан и по време на интервюто и слабо почувствах, че този интерфейс има Init метод, който може да регистрира серия от събития с Init метода в курса по имплементация. У дома този уикенд наистина няма какво да се направи, дори и да е да проверим и запълним празнините в това знание.

IHttpModule работи

Приятели, които са запознати с жизнения цикъл asp.net, трябва да знаят, че изпълнението на HttpModule се изпълнява преди HttpHandleler, след като се изпълнява серия от събития на HttpModule, след това се изпълнява HttpHandleler и след това се изпълняват някои събития на HttpModule. За подробности, моля, вижте следната диаграма на жизнения цикъл.



HttpHandler е мястото за обработка на http заявката, HttpModule е "единственият начин" за HTTP заявка, така че можете да добавите необходима информация върху HTTP заявката, преди тази HTTP заявка да бъде предадена към реалния център за обработка на заявки (HttpHandleler), или да свършите допълнителна работа по прихванатите HTTP заявки. Или в някои случаи просто прекратяват HTTP заявки, които отговарят на определени условия, които могат да действат като филтър.

HTTP заявка ще бъде предадена към HttpHandler контейнера в даден момент (събитие ResolveRequestCache) по време на доставката на HttpModule контейнера. След това събитие контейнерът HttpModule създава входяща инстанция на HttpHandleler, но вместо да се откаже от контрола върху HTTP заявката, той продължава да изпълнява събитията AcquireRequestState и PreRequestHandlelerExcute. След събитието 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: Authorization, обикновено използвана за проверка дали заявката на потребителя е получила разрешение.

5. PostAuthorizeRequest: Потребителската заявка е одобрена.

6. ResolveRequestCache: Вземете резултатите от обработката на предишния кеш за обработка, ако е кеширан преди, няма нужда да обработвате заявката, и директно върнете кешираните резултати.

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

8. PostMapRequestHandleler: Поисканият обект процесор е създаден въз основа на заявката на потребителя.

9. AcquireRequestState: Получаване на статуса на заявката, която обикновено се използва за сесия

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

11. PreRequestHandlerExecute: Подгответе обработващия за изпълнение.

12. PostRequestHandlelerExecute: Обработващият е изпълнен

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

14. PostReleaseRequestState: Статусът на заявката е публикуван.

15. UpdateRequestCache: Актуализирайте кеша.

16. PostUpdateRequestCache: Кешът е обновен.

17. LogRequest: Заявката за операция log

18. PostLogRequest: Операцията за записване на заявката е завършена.

19. КрайЗаявка: Заявката се обработва.
Публикувано в 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