Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 51405|Svar: 5

[ASP.NET] asp.net IHttpModule-gränssnittet förklaras i detalj

[Kopiera länk]
Publicerad på 2018-03-13 21:46:06 | | | |
Skrivet framtill

När det gäller det relevanta innehållet i IHttpModule blev jag också tillfrågad under intervjun, och jag kände vagt att detta gränssnitt har en Init-metod, som kan registrera en serie händelser med Init-metoden i implementeringskursen. Hemma i helgen finns det egentligen inget att göra, även om det bara är att kontrollera och fylla i luckorna i denna kunskap.

IHttpModule fungerar

Vänner som är bekanta med asp.net livscykel bör veta att exekveringen av HttpModule sker före HttpHandler, och efter att en serie händelser i HttpModule har körts, sedan körs HttpHandler och därefter vissa händelser i HttpModule. För detaljer, se följande livscykeldiagram.



HttpHandler är platsen för att hantera HTTP-förfrågan, HttpModule är det "enda sättet" för en HTTP-förfrågan, så du kan lägga till nödvändig information ovanpå HTTP-förfrågan innan denna HTTP-förfrågan skickas till det verkliga förfrågningscentret (HttpHandler), eller göra ytterligare arbete med den avlyssnade HTTP-förfrågan. Eller i vissa fall helt enkelt avsluta HTTP-förfrågningar som uppfyller vissa villkor, vilket kan fungera som ett filter.

En HTTP-förfrågan kommer att skickas till HttpHandler-containern vid någon punkt (ResolveRequestCache-händelsen) under leveransen av HttpModule-containern. Efter denna händelse skapar HttpModule-containern en ingressinstans av HttpHandler, men istället för att ge upp kontrollen över HTTP-begäran fortsätter den att avfyra AcquireRequestState- och PreRequestHandlerExcute-händelserna. Efter PreRequestHandlerExcute-händelsen ger HttpModule-fönstret tillfälligt kontroll till HttpHandler-containern för verklig HTTP-förfrågningshantering.

Inuti HttpHandler-containern körs metoden ProcessRequest för att hantera HTTP-förfrågningar. Efter att container-HttpHandlern bearbetat hela HTTP-förfrågan återlämnar den kontrollen till HttpModule, som fortsätter att skicka den bearbetade HTTP-förfrågan-informationsflödet lager för lager tills den returneras till klienten.

Ett exempel

Projektstruktur



MyHttpModule-kod

Registrera en anpassad HttpModule i web.config

Bläddra bland sidan Default.aspx



Så vad är ordningen för utförandet av en serie händelser i livscykeln?


Bläddra bland resultaten



Använd HttpModule för att avsluta Http-förfrågan


utfall



sammanfattning

Här introducerar vi det viktigaste gränssnittet i asp.net livscykel, IHttpModule, som kan beskrivas som ett händelsegränssnitt, eftersom i Init-metoden i implementationsklassen kan olika händelser i livscykeln registreras och olika logiker kan definieras i händelsen.





Föregående:Asp.Net IHttpHandler introducerad
Nästa:C# måste modifiera denna header-lösning med lämpliga attribut eller metoder
 Hyresvärd| Publicerad på 2018-03-13 21:46:47 |
. NETFramework 4.5 tillhandahåller 25 standardhändelser.


 Hyresvärd| Publicerad på 2018-03-13 21:47:03 |
. NETFramework 4.0, som tillhandahåller 19 standardhändelser.

1. BeginRequest: Den första händelsen i asp.net för att börja behandla begäran, vilket indikerar början av bearbetningen.

2. AuthenticateRequest: Autentiseringsförfrågan, som vanligtvis används för att erhålla användarinformationen för förfrågan.

3. PostAuthenticateRequest: Den användarinformation som har begärts.

4. AuthorizeRequest: Authorization, används vanligtvis för att kontrollera om användarens begäran har beviljats behörighet.

5. PostAuthorizeRequest: Användarförfrågan har blivit auktoriserad.

6. ResolveRequestCache: Få bearbetningsresultaten från föregående processorcache, om den har cacplats tidigare behövs ingen process av begäran och returnera direkt de cachade resultaten.

7. PostResolveRequestCache: Cachen har behandlats.

8. PostMapRequestHandler: Det begärda processorobjektet har skapats baserat på användarens begäran.

9. AcquireRequestState: Hämta statusen för begäran, som vanligtvis används för session

10. PostAcquireRequestState: Session har erhållits

11. PreRequestHandlerExecute: Förbered execution handler.

12. PostRequestHandlerExecute: Handlaren har körts

13. Frigivningsbegäran: Tillståndet för frigivningsbegäran.

14. PostReleaseRequestState: Status för begäran har offentliggjorts.

15. UpdateRequestCache: Uppdatera cachen.

16. PostUpdateRequestCache: Cachen har uppdaterats.

17. LogRequest: Den loggoperation som begärs

18. PostLogRequest: Loggoperationen för förfrågan har slutförts.

19. SlutBegäran: Begäran behandlas.
Publicerad på 2019-04-22 09:48:33 |
Bokmärk det
Publicerad på 2021-09-30 19:19:09 |
Nyligen pluggade. Läs den noga
 Hyresvärd| Publicerad på 2023-07-14 20:26:36 |
ASP.NET MVC räknar förfrågningar baserat på IHttpModule-moduler
https://www.itsvse.com/thread-10627-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com