Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 51405|Svar: 5

[ASP.NET] asp.net IHttpModule-interface forklares i detaljer

[Kopier link]
Opslået på 13/03/2018 21.46.06 | | | |
Skrevet foran

Med hensyn til det relevante indhold i IHttpModule blev jeg også spurgt under interviewet, og jeg følte svagt, at dette interface har en Init-metode, som kan registrere en række begivenheder med Init-metoden i implementeringsklassen. Hjemme i weekenden er der virkelig ikke noget at lave, selv hvis det bare er at tjekke og udfylde hullerne i denne viden.

IHttpModule virker

Venner, der kender asp.net livscyklus, bør vide, at udførelsen af HttpModule udføres før HttpHandler, og efter at en række begivenheder i HttpModule er udført, derefter udfører HttpHandler og nogle begivenheder i HttpModule. For detaljer, se venligst det følgende livscyklusdiagram.



HttpHandler er stedet til at håndtere HTTP-forespørgslerne, HttpModule er den "eneste måde" for en HTTP-forespørgsel, så du kan tilføje noget nødvendig information oven på HTTP-anmodningsinformationen, før denne HTTP-anmodning sendes til det rigtige anmodningsbehandlingscenter (HttpHandler), eller udføre noget ekstra arbejde på den opsnappede HTTP-anmodningsinformation. Eller i nogle tilfælde blot afslutte HTTP-forespørgsler, der opfylder visse betingelser, hvilket kan fungere som et filter.

En HTTP-anmodning vil blive sendt til HttpHandler-containeren på et tidspunkt (ResolveRequestCache-begivenheden) under leveringen af HttpModule-containeren. Efter denne hændelse opretter HttpModule-containeren en ingress-instans af HttpHandler, men i stedet for at opgive kontrollen over HTTP-anmodningen, fortsætter den med at affyre AcquireRequestState- og PreRequestHandlerExcute-begivenhederne. Efter PreRequestHandlerExcute-begivenheden giver HttpModule-vinduet midlertidigt kontrol til HttpHandler-containeren for reel HTTP-anmodningsbehandling.

Inde i HttpHandler-containeren udføres ProcessRequest-metoden for at håndtere HTTP-anmodninger. Efter at container-HttpHandleren har behandlet hele HTTP-forespørgslen, returnerer den kontrollen til HttpModulet, som fortsætter med at sende den behandlede HTTP-anmodningsinformation lag for lag, indtil den returneres til klienten.

Et eksempel

Projektstruktur



MyHttpModule-kode

Registrer et brugerdefineret HttpModule i web.config

Gennemse side Default.aspx



Så hvad er rækkefølgen for udførelsen af en række begivenheder i livscyklussen?


Gennemse resultaterne



Brug HttpModule til at afslutte HTTP-forespørgslen


udfald



resumé

Her introducerer vi det vigtigste interface i asp.net livscyklus, IHttpModule, som kan beskrives som et eventinterface, fordi i Init-metoden i implementeringsklassen kan forskellige hændelser i livscyklussen registreres, og forskellig logik kan defineres i hændelsen.





Tidligere:Asp.Net IHttpHandler introduceret
Næste:C# skal ændre denne header-løsning med de relevante attributter eller metoder
 Udlejer| Opslået på 13/03/2018 21.46.47 |
. NETFramework 4.5 tilbyder 25 standardbegivenheder.


 Udlejer| Opslået på 13/03/2018 21.47.03 |
. NETFramework 4.0, som tilbyder 19 standardbegivenheder.

1. BeginRequest: Den første begivenhed asp.net for at begynde behandlingen af anmodningen, hvilket indikerer starten af behandlingen.

2. AuthenticateRequest: Autentificeringsanmodning, som generelt bruges til at indhente brugeroplysningerne om anmodningen.

3. PostAuthenticateRequest: De brugeroplysninger, der er blevet anmodet om.

4. AutorisereAnmodning: Autorisation, som generelt bruges til at kontrollere, om brugerens anmodning har fået tilladelse.

5. PostAuthorizeRequest: Brugeranmodningen er godkendt.

6. ResolveRequestCache: Få behandlingsresultaterne fra den tidligere cache, hvis den tidligere er cachet, er der ikke behov for at behandle anmodningen og returnere de cachede resultater direkte.

7. PostResolveRequestCache: Cachen er blevet behandlet.

8. PostMapRequestHandler: Det anmodede processorobjekt er oprettet baseret på brugerens anmodning.

9. AcquireRequestState: Få status på anmodningen, som generelt bruges til sessionen

10. PostAcquireRequestState: Session er opnået

11. PreRequestHandlerExecute: Forbered execution handleren.

12. PostRequestHandlerExecute: Handleren er blevet udført

13. ReleaseRequestState: Tilstanden for frigivelsesanmodningen.

14. PostReleaseRequestState: Status på anmodningen er blevet offentliggjort.

15. UpdateRequestCache: Opdater cachen.

16. PostUpdateRequestCache: Cachen er blevet opdateret.

17. LogRequest: Den logoperation, der anmodes,

18. PostLogRequest: Logoperationen for anmodningen er afsluttet.

19. Slutanmodning: Anmodningen behandles.
Opslået på 22/04/2019 09.48.33 |
Bogmærk det
Opslået på 30/09/2021 19.19.09 |
Studerer for nylig. Læs det grundigt
 Udlejer| Opslået på 14/07/2023 20.26.36 |
ASP.NET MVC tæller forespørgsler baseret på IHttpModule-moduler
https://www.itsvse.com/thread-10627-1-1.html
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com