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.
|