Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 51405|Atsakyti: 5

[ASP.NET] asp.net IHttpModule sąsaja išsamiai paaiškinta

[Kopijuoti nuorodą]
Paskelbta 2018-03-13 21:46:06 | | | |
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ą.





Ankstesnis:Asp.Net pristatytas IHttpHandler
Kitą:C# turi modifikuoti šį antraštės sprendimą atitinkamais atributais arba metodais
 Savininkas| Paskelbta 2018-03-13 21:46:47 |
. NETFramework 4.5 pateikia 25 standartinius įvykius.


 Savininkas| Paskelbta 2018-03-13 21:47:03 |
. NETFramework 4.0, kuriame pateikiama 19 standartinių įvykių.

1. BeginRequest: pirmasis įvykis, kai asp.net pradėti apdoroti užklausą, nurodant apdorojimo pradžią.

2. AuthenticateRequest: autentifikavimo užklausa, paprastai naudojama užklausos vartotojo informacijai gauti.

3. PostAuthenticateRequest: vartotojo informacija, kurios buvo prašoma.

4. AuthorizeRequest: Autorizacija, paprastai naudojama patikrinti, ar vartotojo užklausai buvo suteiktas leidimas.

5. PostAuthorizeRequest: vartotojo užklausa buvo autorizuota.

6. ResolveRequestCache: gaukite ankstesnės apdorojimo talpyklos apdorojimo rezultatus, jei ji anksčiau buvo talpykloje, tada nereikia apdoroti užklausos ir tiesiogiai grąžinti talpykloje saugomus rezultatus.

7. PostResolveRequestCache: talpykla apdorota.

8. PostMapRequestHandler: prašomas procesoriaus objektas buvo sukurtas pagal vartotojo užklausą.

9. AcquireRequestState: gaukite užklausos būseną, kuri paprastai naudojama sesijai

10. PostAcquireRequestState: sesija gauta

11. PreRequestHandlerExecute: Paruoškite vykdymo apdorojimo programą.

12. PostRequestHandlerExecute: apdorojimo programa įvykdyta

13. ReleaseRequestState: leidimo užklausos būsena.

14. PostReleaseRequestState: užklausos būsena išleista.

15. UpdateRequestCache: atnaujinkite talpyklą.

16. PostUpdateRequestCache: talpykla atnaujinta.

17. LogRequest: prašoma žurnalo operacija

18. PostLogRequest: užklausos žurnalo operacija baigta.

19. EndRequest: užklausa apdorojama.
Paskelbta 2019-04-22 09:48:33 |
Pažymėkite jį
Paskelbta 2021-09-30 19:19:09 |
Neseniai studijavo. Atidžiai perskaitykite
 Savininkas| Paskelbta 2023-07-14 20:26:36 |
ASP.NET MVC skaičiuoja užklausas pagal IHttpModule modulius
https://www.itsvse.com/thread-10627-1-1.html
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com