Parašyta priekyje
Kalbant apie atitinkamą IHttpModule turinį, interviu metu manęs taip pat paklausė, ir aš miglotai pajutau, kad ši sąsaja turi Init metodą, kuris gali užregistruoti įvykių seriją su Init metodu įgyvendinimo klasėje. Namuose šį savaitgalį tikrai nėra ką veikti, net jei reikia patikrinti ir užpildyti šio žinių spragas.
IHttpModule veikia
Draugai, kurie yra susipažinę su asp.net gyvavimo ciklu, turėtų žinoti, kad HttpModule vykdomas prieš HttpHandler ir įvykdžius HttpModule įvykių seriją, tada vykdant HttpHandler ir vykdant kai kuriuos HttpModule įvykius. Išsamesnės informacijos ieškokite toliau pateiktoje gyvavimo ciklo diagramoje.
HttpHandler yra vieta tvarkyti http užklausą, HttpModule yra "vienintelis būdas" HTTP užklausai, todėl galite pridėti tam tikrą reikiamą informaciją prie HTTP užklausos informacijos prieš perduodant šią HTTP užklausą tikrajam užklausos apdorojimo centrui (HttpHandler), arba atlikti papildomą darbą su perimta HTTP užklausos informacija. Arba kai kuriais atvejais tiesiog nutraukite HTTP užklausas, atitinkančias tam tikras sąlygas, kurios gali veikti kaip filtras.
HTTP užklausa bus perduota į "HttpHandler" konteinerį tam tikru momentu (įvykis "ResolveRequestCache") pristatant "HttpModule" konteinerį. Po šio įvykio "HttpModule" konteineris sukuria "HttpHandler" įėjimo egzempliorių, tačiau užuot atsisakęs HTTP užklausos valdymo, jis toliau suaktyvina įvykius "AcquireRequestState" ir "PreRequestHandlerExcute". Po įvykio PreRequestHandlerExcute, HttpModule langas laikinai suteikia HttpHandler konteinerio valdymą, kad būtų galima apdoroti tikrą HTTP užklausą.
"HttpHandler" konteineryje vykdomas "ProcessRequest" metodas, skirtas HTTP užklausoms apdoroti. Kai konteineris "HttpHandler" apdoroja visą HTTP užklausą, jis grąžina valdymą į "HttpModule", kuris ir toliau perduoda apdorotą HTTP užklausos informacijos srautą sluoksnis po sluoksnio, kol ji grąžinama klientui.
Egzempliorius
Projekto struktūra
MyHttpModule kodas
Užregistruokite pasirinktinį HttpModule web.config
Naršyti puslapį Default.aspx
Taigi, kokia yra įvykių serijos vykdymo tvarka gyvenimo cikle?
Naršykite rezultatus
Naudokite HttpModule norėdami nutraukti Http užklausą
Rezultatus
suvestinė
Čia pristatome svarbiausią asp.net gyvavimo ciklo sąsają IHttpModule, kurią galima apibūdinti kaip įvykio sąsają, nes diegimo klasėje esančiame "Init" metode galima užregistruoti įvairius gyvavimo ciklo įvykius ir apibrėžti įvairią logiką.
|