Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 51405|Odgovoriti: 5

[ASP.NET] asp.net IHttpModule vmesnik je podrobno razložen

[Kopiraj povezavo]
Objavljeno na 13. 03. 2018 21:46:06 | | | |
Napisano spredaj

Glede relevantne vsebine IHttpModule so me med intervjujem vprašali in nekako sem začutil, da ima ta vmesnik metodo Init, ki lahko zabeleži niz dogodkov z metodo Init v razredu implementacije. Doma ta vikend ni prav nič za početi, tudi če gre za preverjanje in zapolnjevanje vrzeli v tem znanju.

IHttpModule dela

Prijatelji, ki poznajo asp.net življenjski cikel, bi morali vedeti, da se izvajanje HttpModule izvaja pred HttpHandlerjem, po izvedbi serije dogodkov HttpModule, nato izvajanju HttpHandlerja in nato izvajanju nekaterih dogodkov HttpModule. Za podrobnosti si oglejte naslednji diagram življenjskega cikla.



HttpHandler je prostor za obravnavo HTTP zahtevka, HttpModule je "edini način" za HTTP zahtevek, tako da lahko dodate nekaj potrebnih informacij na HTTP zahteve, preden se ta HTTP zahtevek posreduje v pravi center za obdelavo zahtevkov (HttpHandler), ali pa opravite dodatno delo na prestreženih HTTP zahtevah. Ali pa v nekaterih primerih preprosto zaključite HTTP zahteve, ki izpolnjujejo določene pogoje, kar lahko deluje kot filter.

HTTP zahtevek bo nekje med dostavo kontejnerja HttpModule posredovan v vsebnik HttpHandler (dogodek ResolveRequestCache). Po tem dogodku kontejner HttpModule ustvari vhodno instanco HttpHandlerja, vendar namesto da bi izgubil nadzor nad HTTP zahtevo, še naprej sproži dogodke AcquireRequestState in PreRequestHandlerExcute. Po dogodku PreRequestHandlerExcute okno HttpModule začasno preda nadzor vsebniku HttpHandler za dejansko obdelavo HTTP zahtevkov.

Znotraj vsebnika HttpHandler se izvaja metoda ProcessRequest za obdelavo HTTP zahtevkov. Ko kontejner HttpHandler obdela celoten HTTP zahtevek, se nadzor vrne HttpModulu, ki nadaljuje s posredovanjem predelanih HTTP informacij o zahtevkih plast za plastjo, dokler jih ne vrne odjemalcu.

Primer

Struktura projekta



Koda MyHttpModule

Registrirajte prilagojen HttpModule v web.config

Brskanje strani Default.aspx



Kakšen je torej vrstni red izvedbe serije dogodkov v življenjskem ciklu?


Prebrskajte rezultate



Uporabite HttpModule za prekinitev HTTP zahteve


Rezultat



Povzetek

Tukaj predstavljamo najpomembnejši vmesnik v življenjskem ciklu asp.net, IHttpModule, ki ga lahko opišemo kot vmesnik za dogodek, saj je v metodi Init v razredu implementacije mogoče registrirati različne dogodke v življenjskem ciklu in določiti različno logiko v dogodku.





Prejšnji:Asp.Net Uveden IHttpHandler
Naslednji:C# mora to zaobhodno rešitev glave spremeniti z ustreznimi atributi ali metodami
 Najemodajalec| Objavljeno na 13. 03. 2018 21:46:47 |
. NETFramework 4.5 ponuja 25 standardnih dogodkov.


 Najemodajalec| Objavljeno na 13. 03. 2018 21:47:03 |
. NETFramework 4.0, ki ponuja 19 standardnih dogodkov.

1. BeginRequest: Prvi dogodek asp.net za začetek obdelave zahteve, ki označuje začetek obdelave.

2. AuthenticateRequest: Zahteva za avtentikacijo, ki se običajno uporablja za pridobivanje uporabniških podatkov zahteve.

3. PostAuthenticateRequest: Uporabniški podatki, ki so bili zahtevani.

4. AuthorizeRequest: Authorization, ki se običajno uporablja za preverjanje, ali je uporabnikova zahteva prejela dovoljenje.

5. PostAuthorizeRequest: Uporabniška zahteva je bila odobrena.

6. ResolveRequestCache: Pridobite rezultate obdelave prejšnjega predpomnilnika obdelave, če je bil predpomnilnik že shranjen, potem ni potrebe po obdelavi zahteve in neposrednemu vračanju predpomnjenih rezultatov.

7. PostResolveRequestCache: Predpomnilnik je bil obdelan.

8. PostMapRequestHandler: Zahtevani procesorski objekt je bil ustvarjen na podlagi uporabnikove zahteve.

9. AcquireRequestState: Pridobimo status zahteve, ki se običajno uporablja za sejo

10. PostAcquireRequestState: Seja je pridobljena

11. PreRequestHandlerExecute: Pripravite izvajalec izvajanja.

12. PostRequestHandlerIzvajanje: Handler je bil izveden

13. ReleaseRequestState: Stanje zahteve za sprostitev.

14. Stanje zahteve po sprostitvi: Status zahteve je bil objavljen.

15. UpdateRequestCache: Posodobi predpomnilnik.

16. PostUpdateRequestCache: Predpomnilnik je bil posodobljen.

17. LogRequest: Zahtevana operacija dnevnika

18. PostLogRequest: Operacija dnevnika zahteve je bila zaključena.

19. EndRequest: Zahteva je obdelana.
Objavljeno na 22. 04. 2019 09:48:33 |
Shranite med zaznamke
Objavljeno na 30. 09. 2021 19:19:09 |
Nedavno sem začel študirati. Preberi natančno
 Najemodajalec| Objavljeno na 14. 07. 2023 20:26:36 |
ASP.NET MVC šteje zahteve, ki temeljijo na modulih IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com