Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 51405|Odpowiedź: 5

[ASP.NET] asp.net interfejs IHttpModule jest szczegółowo wyjaśniony

[Skopiuj link]
Opublikowano 13.03.2018 21:46:06 | | | |
Napisane na początku

Jeśli chodzi o istotną zawartość IHttpModule, zapytano mnie także podczas rozmowy kwalifikacyjnej i miałem ogólne wrażenie, że ten interfejs ma metodę Init, która może rejestrować serię zdarzeń z metodą Init w klasie implementacyjnej. W domu w ten weekend naprawdę nie ma nic do roboty, nawet jeśli chodzi o sprawdzenie i uzupełnienie luk w tej wiedzy.

Działa IHttpModule

Znajomi zaznajomieni z cyklem życia asp.net powinni wiedzieć, że wykonanie HttpModule jest wykonywane przed HttpHandlerem, po wykonaniu serii zdarzeń HttpModule, następnie wykonaniu HttpHandler, a następnie niektórych zdarzeniach HttpModule. Szczegóły można znaleźć w poniższym schemacie cyklu życia.



HttpHandler to miejsce do obsługi żądań http, HttpModule to "jedyny sposób" dla żądania HTTP, więc możesz dodać wymagane informacje na podstawie informacji HTTP zanim to żądanie HTTP zostanie przekazane do prawdziwego centrum przetwarzania żądań (HttpHandler), albo wykonać dodatkową pracę nad przechwyconymi informacjami o żądaniu HTTP. A w niektórych przypadkach po prostu zakończyć żądania HTTP spełniające określone warunki, co może działać jako filtr.

Żądanie HTTP zostanie przekazane do kontenera HttpHandler w pewnym momencie (zdarzenie ResolveRequestCache) podczas dostarczania kontenera HttpModule. Po tym zdarzeniu kontener HttpModule tworzy instancję wejściową HttpHandlera, ale zamiast oddać kontrolę nad żądaniem HTTP, nadal uruchamia zdarzenia AcquireRequestState i PreRequestHandlerExcute. Po zdarzeniu PreRequestHandlerExcute, okno HttpModule tymczasowo przekazuje kontrolę kontenerowi HttpHandler do rzeczywistego przetwarzania żądań HTTP.

W kontenerze HttpHandler metoda ProcessRequest jest wykonywana do obsługi żądań HTTP. Po przetworzeniu całego żądania HTTP kontener HttpHandler zwraca kontrolę do HttpModule, który nadal przekazuje przetworzone informacje o żądaniu HTTP warstwa po warstwie, aż zostaną one zwrócone klientowi.

Przykład

Struktura projektu



Kod MyHttpModule

Zarejestruj niestandardowy HttpModule w web.config

Przeglądaj stronę Default.aspx



Jaki jest więc porządek realizacji serii zdarzeń w cyklu życia?


Przeglądaj wyniki



Użyj HttpModule do zakończenia żądania Http


wynik



streszczenie

Tutaj przedstawiamy najważniejszy interfejs w cyklu życia asp.net, IHttpModule, który można opisać jako interfejs zdarzeń, ponieważ w metodzie Init w klasie implementacyjnej można rejestrować różne zdarzenia w cyklu życia oraz definiować różne logiki w wydarzeniu.





Poprzedni:Asp.Net Wprowadzenie IHttpHandler
Następny:C# musi zmodyfikować ten nagłówkowy obejście odpowiednimi atrybutami lub metodami
 Ziemianin| Opublikowano 13.03.2018 21:46:47 |
. NETFramework 4.5 oferuje 25 standardowych wydarzeń.


 Ziemianin| Opublikowano 13.03.2018 21:47:03 |
. NETFramework 4.0, który oferuje 19 standardowych wydarzeń.

1. BeginRequest: Pierwsze zdarzenie asp.net rozpoczynające przetwarzanie żądania, wskazujące rozpoczęcie przetwarzania.

2. AuthenticateRequest: Żądanie uwierzytelniania, zazwyczaj używane do uzyskania informacji użytkownika o żądaniu.

3. PostAuthenticateRequest: Informacje użytkownika, o które zostały zamówione.

4. AuthorizeRequest: Autoryzacja, zazwyczaj używana do sprawdzenia, czy żądanie użytkownika otrzymało uprawnienia.

5. PostAuthorizeRequest: Wniosek użytkownika został autoryzowany.

6. ResolveRequestCache: Uzyskaj wyniki przetwarzania poprzedniej pamięci podręcznej przetwarzania, jeśli była wcześniej buforowana, nie ma potrzeby przetwarzania żądania i bezpośredniego zwracania wyników buforowanych.

7. PostResolveRequestCache: Pamięć podręczna została przetworzona.

8. PostMapRequestHandler: Obiekt żądanego procesora został utworzony na podstawie żądania użytkownika.

9. AcquireRequestState: Uzyskaj status żądania, który jest zazwyczaj używany do sesji

10. Stan po Żądaniu Zdobycia: Sesja została uzyskana

11. PreRequestHandlerExecute: Przygotuj obsługę wykonawczą.

12. PostRequestHandlerWykonanie: Handler został wykonany

13. Stan wniosku o zwolnienie: Stan wniosku o zwolnienie.

14. Stan wniosku po wydaniu: Status wniosku został opublikowany.

15. UpdateRequestCache: Aktualizuj pamięć podręczną.

16. PostUpdateRequestCache: Pamięć podręczna została zaktualizowana.

17. LogRequest: Wymagana operacja logu

18. PostLogRequest: Operacja logowania żądania została zakończona.

19. EndRequest: Wniosek zostaje rozpatrzony.
Opublikowano 22.04.2019 09:48:33 |
Dodaj do zakładek
Opublikowano 30.09.2021 19:19:09 |
Ostatnio się uczę. Przeczytaj uważnie
 Ziemianin| Opublikowano 14.07.2023 20:26:36 |
ASP.NET MVC liczy żądania oparte na modułach IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com