Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 51405|Svare: 5

[ASP.NET] asp.net IHttpModule-grensesnittet forklares i detalj

[Kopier lenke]
Publisert på 13.03.2018 21:46:06 | | | |
Skrevet foran

Når det gjelder relevant innhold i IHttpModule, ble jeg også spurt under intervjuet, og jeg følte vagt at dette grensesnittet har en Init-metode, som kan registrere en serie hendelser med Init-metoden i implementeringsklassen. Hjemme denne helgen er det egentlig ingenting å gjøre, selv om det bare er å sjekke og fylle hullene i denne kunnskapen.

IHttpModule fungerer

Venner som er kjent med livssyklusen asp.net bør vite at utførelsen av HttpModule utføres før HttpHandler, og etter at en serie hendelser i HttpModule er utført, deretter HttpHandler er kjørt, og noen hendelser i HttpModule. For detaljer, vennligst se følgende livssyklusdiagram.



HttpHandler er stedet for å håndtere HTTP-forespørselen, HttpModule er den "eneste måten" for en HTTP-forespørsel, så du kan legge til nødvendig informasjon oppå HTTP-forespørselsinformasjonen før denne HTTP-forespørselen sendes til det virkelige forespørselsbehandlingssenteret (HttpHandler), eller gjøre noe ekstra arbeid med den avlyttede HTTP-forespørselsinformasjonen. Eller i noen tilfeller, bare avslutte HTTP-forespørsler som oppfyller visse betingelser, noe som kan fungere som et filter.

En HTTP-forespørsel vil bli sendt til HttpHandler-containeren på et tidspunkt (ResolveRequestCache-hendelsen) under leveringen av HttpModule-containeren. Etter denne hendelsen oppretter HttpModule-containeren en ingress-instans av HttpHandler, men i stedet for å gi fra seg kontrollen over HTTP-forespørselen, fortsetter den å utløse AcquireRequestState- og PreRequestHandlerExcute-hendelsene. Etter PreRequestHandlerExcute-hendelsen gir HttpModule-vinduet midlertidig kontroll til HttpHandler-containeren for reell HTTP-forespørselsbehandling.

Inne i HttpHandler-containeren kjøres ProcessRequest-metoden for å håndtere HTTP-forespørsler. Etter at container-HttpHandler har behandlet hele HTTP-forespørselen, returnerer den kontrollen til HttpModule, som fortsetter å sende den behandlede HTTP-forespørselsinformasjonsflyten lag for lag til den returneres til klienten.

En instans

Prosjektstruktur



MyHttpModule-kode

Registrer en egendefinert HttpModule i web.config

Bla gjennom siden Default.aspx



Så hva er rekkefølgen på gjennomføringen av en rekke hendelser i livssyklusen?


Bla gjennom resultatene



Bruk HttpModule for å avslutte Http-forespørselen


utfall



sammendrag

Her introduserer vi det viktigste grensesnittet i asp.net livssyklus, IHttpModule, som kan beskrives som et hendelsesgrensesnitt, fordi i Init-metoden i implementasjonsklassen kan ulike hendelser i livssyklusen registreres, og ulike logikker kan defineres i hendelsen.





Foregående:Asp.Net IHttpHandler introdusert
Neste:C# må endre denne header-løsningen med riktige attributter eller metoder
 Vert| Publisert på 13.03.2018 21:46:47 |
. NETFramework 4.5 tilbyr 25 standardhendelser.


 Vert| Publisert på 13.03.2018 21:47:03 |
. NETFramework 4.0, som tilbyr 19 standardhendelser.

1. BeginRequest: Den første hendelsen i asp.net for å starte behandlingen av forespørselen, som indikerer starten på behandlingen.

2. AuthenticateRequest: Autentiseringsforespørsel, vanligvis brukt for å hente brukerinformasjonen til forespørselen.

3. PostAuthenticateRequest: Brukerinformasjonen som er etterspurt.

4. AuthorizeRequest: Authorization, vanligvis brukt for å sjekke om brukerens forespørsel har fått tillatelse.

5. PostAuthorizeRequest: Brukerforespørselen er autorisert.

6. ResolveRequestCache: Få prosesseringsresultatene fra forrige cache, hvis den har vært bufret tidligere, er det ikke nødvendig å behandle forespørselen og returnere de bufrede resultatene direkte.

7. PostResolveRequestCache: Cachen er behandlet.

8. PostMapRequestHandler: Det forespurte prosessorobjektet er opprettet basert på brukerens forespørsel.

9. AcquireRequestState: Få status på forespørselen, som vanligvis brukes for session

10. PostAcquireRequestState: Sesjon er innhentet

11. PreRequestHandlerExecute: Forbered utførelseshåndtereren.

12. PostRequestHandlerExecute: Handleren er utført

13. ReleaseRequestState: Tilstanden til løslatelsesforespørselen.

14. PostReleaseRequestState: Status på forespørselen er offentliggjort.

15. UpdateRequestCache: Oppdater cachen.

16. PostUpdateRequestCache: Cachen er oppdatert.

17. LogRequest: Loggoperasjonen som er forespurt

18. PostLogRequest: Loggoperasjonen for forespørselen er fullført.

19. EndRequest: Forespørselen behandles.
Publisert på 22.04.2019 09:48:33 |
Bokmerk det
Publisert på 30.09.2021 19:19:09 |
Nylig studerer. Les det nøye
 Vert| Publisert på 14.07.2023 20:26:36 |
ASP.NET MVC teller forespørsler basert på IHttpModule-moduler
https://www.itsvse.com/thread-10627-1-1.html
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com