Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 51405|Răspunde: 5

[ASP.NET] asp.net interfață IHttpModule este explicată în detaliu

[Copiază linkul]
Postat pe 13.03.2018 21:46:06 | | | |
Scris în față

Referitor la conținutul relevant al IHttpModule, am fost întrebat și în timpul interviului și am simțit vag că această interfață are o metodă Init, care poate înregistra o serie de evenimente cu metoda Init în clasa de implementare. Acasă, în acest weekend, nu este cu adevărat nimic de făcut, chiar dacă este vorba de a verifica și completa golurile din această informație.

IHttpModule funcționează

Prietenii care cunosc ciclul asp.net de viață ar trebui să știe că execuția HttpModule se execută înainte de HttpHandler, apoi după executarea unei serii de evenimente din HttpModule, apoi executarea HttpHandler și apoi executarea unor evenimente din HttpModule. Pentru detalii, vă rugăm să consultați următorul diagramă a ciclului de viață.



HttpHandler este locul unde se gestionează cererea http, HttpModule este "singura cale" pentru o cerere HTTP, așa că poți adăuga unele informații necesare peste informațiile cererii HTTP înainte ca această cerere HTTP să fie transmisă către centrul real de procesare a cererilor (HttpHandler) sau să faci muncă suplimentară la informațiile interceptate ale cererii HTTP. Sau, în unele cazuri, pur și simplu termină cererile HTTP care îndeplinesc anumite condiții, ceea ce poate acționa ca un filtru.

O cerere HTTP va fi transmisă containerului HttpHandler la un moment dat (eveniment ResolveRequestCache) în timpul livrării containerului HttpModule. După acest eveniment, containerul HttpModule creează o instanță de intrare a HttpHandler, dar în loc să renunțe la controlul cererii HTTP, continuă să lanseze evenimentele AcquireRequestState și PreRequestHandlerExcute. După evenimentul PreRequestHandlerExcute, fereastra HttpModule oferă temporar control containerului HttpHandler pentru procesarea reală a cererilor HTTP.

În interiorul containerului HttpHandler, metoda ProcessRequest este executată pentru a gestiona cererile HTTP. După ce HttpHandler-ul containerului procesează întreaga cerere HTTP, el returnează controlul către HttpModule, care continuă să transmită informațiile despre cererea HTTP procesată strat cu strat până când acestea sunt returnate clientului.

O instanță

Structura proiectului



Codul MyHttpModule

Înregistrează un HttpModule personalizat în web.config

Răsfoiește pagina Default.aspx



Deci, care este ordinea execuției unei serii de evenimente din ciclul vieții?


Răsfoiește rezultatele



Folosește HttpModule pentru a încheia cererea Http


rezultat



rezumat

Aici introducem cea mai importantă interfață din ciclul de viață al asp.net, IHttpModule, care poate fi descrisă ca o interfață de evenimente, deoarece în metoda Init din clasa de implementare, diverse evenimente din ciclul de viață pot fi înregistrate, iar diverse logici pot fi definite în eveniment.





Precedent:Asp.Net introdus IHttpHandler
Următor:C# trebuie să modifice această soluție de ocolire a antetului cu atributele sau metodele corespunzătoare
 Proprietarul| Postat pe 13.03.2018 21:46:47 |
. NETFramework 4.5 oferă 25 de evenimente standard.


 Proprietarul| Postat pe 13.03.2018 21:47:03 |
. NETFramework 4.0, care oferă 19 evenimente standard.

1. BeginRequest: Primul eveniment de asp.net care începe procesarea cererii, indicând începutul procesării.

2. SolicitareAutentificare: Cerere de autentificare, folosită în general pentru a obține informațiile utilizatorului solicitării.

3. PostAuthenticateRequest: Informațiile de utilizator solicitate.

4. AuthorizeRequest: Autorizare, folosită în general pentru a verifica dacă cererea utilizatorului a primit permisiune.

5. PostAuthorizeRequest: Cererea utilizatorului a fost autorizată.

6. ResolveRequestCache: Primește rezultatele procesării cache-ului de procesare anterior, dacă a fost stocat în cache anterior, atunci nu este nevoie să procesezi cererea și să returnezi direct rezultatele stocate în cache.

7. PostResolveRequestCache: Cache-ul a fost procesat.

8. PostMapRequestHandler: Obiectul procesorului solicitat a fost creat pe baza cererii utilizatorului.

9. AcquireRequestState: Obține statusul cererii, care este folosit în general pentru sesiune

10. PostAcquireRequestState: Sesiunea a fost obținută

11. PreRequestHandlerExecute: Pregătește handler-ul de execuție.

12. PostRequestHandlerExecute: Handler-ul a fost executat

13. ReleaseRequestState: Starea cererii de eliberare.

14. PostReleaseRequestSt: Stadiul cererii a fost publicat.

15. UpdateRequestCache: Actualizează cache-ul.

16. PostUpdateRequestCache: Cache-ul a fost actualizat.

17. LogRequest: Operațiunea de log solicitată

18. PostLogRequest: Operațiunea de jurnal a cererii a fost finalizată.

19. SfârșitCerere: Cererea este procesată.
Postat pe 22.04.2019 09:48:33 |
Adaugă-l la favorite
Postat pe 30.09.2021 19:19:09 |
Recent am studiat. Citește-l cu atenție
 Proprietarul| Postat pe 14.07.2023 20:26:36 |
ASP.NET MVC numără cererile bazate pe modulele IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com