Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 51405|Odpoveď: 5

[ASP.NET] asp.net rozhranie IHttpModule je podrobne vysvetlené

[Kopírovať odkaz]
Zverejnené 13. 3. 2018 21:46:06 | | | |
Napísané vpredu

Čo sa týka relevantného obsahu IHttpModule, počas rozhovoru sa ma tiež pýtali a nejasne som mal pocit, že toto rozhranie má metódu Init, ktorá dokáže zaznamenať sériu udalostí s metódou Init v triede implementácie. Doma tento víkend naozaj nie je čo robiť, aj keď je to len kontrola a doplnenie medzer v tejto vedomosti.

IHttpModule funguje

Priatelia, ktorí poznajú asp.net životný cyklus, by mali vedieť, že spustenie HttpModule sa vykonáva pred HttpHandlerom, po vykonaní série udalostí HttpModule, potom vykonaní HttpHandleru a následne vykonaní niektorých udalostí HttpModule. Pre podrobnosti si pozrite nasledujúci diagram životného cyklu.



HttpHandler je miesto na spracovanie HTTP požiadavky, HttpModule je "jediný spôsob" pre HTTP požiadavku, takže môžete pridať potrebné informácie nad HTTP požiadavku predtým, než je tento HTTP požiadavok odoslaný do skutočného centra na spracovanie požiadaviek (HttpHandler), alebo vykonať dodatočnú prácu na zachytených HTTP požiadavkách. Alebo v niektorých prípadoch jednoducho ukončiť HTTP požiadavky, ktoré spĺňajú určité podmienky, čo môže pôsobiť ako filter.

HTTP požiadavka bude odoslaná do HttpHandler kontajnera v určitom bode (udalosť ResolveRequestCache) počas doručenia HttpModule kontajnera. Po tejto udalosti kontajner HttpModule vytvorí vstupnú inštanciu HttpHandleru, ale namiesto toho, aby sa vzdal kontroly nad HTTP požiadavkou, pokračuje v spúšťaní udalostí AcquireRequestState a PreRequestHandlerExcute. Po udalosti PreRequestHandlerExcute okno HttpModule dočasne dáva kontrolu kontajneru HttpHandler pre skutočné spracovanie HTTP požiadaviek.

Vo vnútri HttpHandler kontajnera sa vykonáva metóda ProcessRequest na spracovanie HTTP požiadaviek. Po spracovaní celej HTTP požiadavky kontajnerom HttpHandler vráti kontrolu HttpModule, ktorý pokračuje v odovzdávaní spracovaných HTTP požiadaviek tok po vrstvách, až kým nie sú vrátené klientovi.

Príklad

Štruktúra projektu



Kód MyHttpModule

Zaregistrujte vlastný HttpModule v web.config

Prehliadajte stránku Default.aspx



Aké je teda poradie vykonania série udalostí v životnom cykle?


Prezrite si výsledky



Použite HttpModule na ukončenie HTTP požiadavky


výsledok



súhrn

Tu predstavujeme najdôležitejšie rozhranie v životnom cykle asp.net, IHttpModule, ktoré možno opísať ako rozhranie udalostí, pretože v metóde Init v implementačnej triede je možné zaznamenať rôzne udalosti v životnom cykle a definovať rôzne logiky v udalosti.





Predchádzajúci:Asp.Net IHttpHandler predstavený
Budúci:C# musí túto hlavičku obísť pomocou príslušných atribútov alebo metód upraviť
 Prenajímateľ| Zverejnené 13. 3. 2018 21:46:47 |
. NETFramework 4.5 poskytuje 25 štandardných udalostí.


 Prenajímateľ| Zverejnené 13. 3. 2018 21:47:03 |
. NETFramework 4.0, ktorý poskytuje 19 štandardných podujatí.

1. BeginRequest: Prvá udalosť asp.net na začatie spracovania požiadavky, čo signalizuje začiatok spracovania.

2. AuthenticateRequest: Požiadavka na autentifikáciu, zvyčajne používaná na získanie používateľských informácií o požiadavke.

3. PostAuthenticateRequest: Požadované informácie o používateľovi.

4. AuthorizeRequest: Authorization, zvyčajne používaná na overenie, či bola požiadavka používateľa oprávnená na povolenie.

5. PostAuthorizeRequest: Žiadosť používateľa bola autorizovaná.

6. ResolveRequestCache: Získajte výsledky spracovania predchádzajúcej spracovateľskej cache, ak bola predtým uložená, nie je potrebné spracovávať požiadavku a priamo vracať uložené výsledky.

7. PostResolveRequestCache: Cache bola spracovaná.

8. PostMapRequestHandler: Požadovaný spracovateľský objekt bol vytvorený na základe požiadavky používateľa.

9. AcquireRequestState: Získajte stav požiadavky, ktorý sa zvyčajne používa pre reláciu

10. PostAcquireRequestStav: Relácia bola získaná

11. PreRequestHandlerExecute: Pripravte vykonávací handler.

12. PostRequestHandlerExecute: Handler bol vykonaný

13. ReleaseRequestState: Stav žiadosti o uvoľnenie.

14. Stav žiadosti o uvoľnenie: Stav žiadosti bol zverejnený.

15. UpdateRequestCache: Aktualizujte cache.

16. PostUpdateRequestCache: Cache bola aktualizovaná.

17. LogRequest: Požadovaná logová operácia

18. PostLogRequest: Logová operácia požiadavky bola dokončená.

19. EndRequest: Žiadosť je spracovaná.
Zverejnené 22. 4. 2019 9:48:33 |
Uložte si to do záložiek
Zverejnené 30. 9. 2021 19:19:09 |
Nedávno študujem. Prečítajte si to pozorne
 Prenajímateľ| Zverejnené 14. 7. 2023 20:26:36 |
ASP.NET MVC počíta požiadavky založené na moduloch IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com