Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 51405|Odpověď: 5

[ASP.NET] asp.net rozhraní IHttpModule je podrobně vysvětleno

[Kopírovat odkaz]
Zveřejněno 13.03.2018 21:46:06 | | | |
Napsáno na začátku

Co se týče relevantního obsahu IHttpModule, byl jsem také během rozhovoru dotazován a měl jsem matný pocit, že toto rozhraní má metodu Init, která dokáže zaznamenat sérii událostí s metodou Init v třídě implementace. Doma tento víkend opravdu není co dělat, i kdyby to mělo být jen o kontrole a doplnění mezer v této znalosti informací.

Práce IHttpModulu

Přátelé, kteří znají asp.net životní cyklus, by měli vědět, že spuštění HttpModule se provádí před HttpHandlerem, a po spuštění série událostí HttpModule, poté vykonání HttpHandleru a následně vykonání některých událostí HttpModule. Pro podrobnosti prosím viz následující schéma životního cyklu.



HttpHandler je místo, kde se http požadavek zpracovává, HttpModule je "jediný způsob" pro HTTP požadavek, takže můžete přidat potřebné informace nad HTTP požadavky před tím, než je tento HTTP požadavek předán skutečnému centru pro zpracování požadavků (HttpHandler), nebo provést další práci na zachycených HTTP požadavcích. Nebo v některých případech jednoduše ukončit HTTP požadavky, které splňují určité podmínky, což může fungovat jako filtr.

HTTP požadavek bude v určitém okamžiku předán kontejneru HttpHandler (událost ResolveRequestCache) během doručení kontejneru HttpModule. Po této události kontejner HttpModule vytvoří vstupní instanci HttpHandleru, ale místo aby se vzdal kontroly nad HTTP požadavkem, pokračuje v spouštění událostí AcquireRequestState a PreRequestHandlerExcute. Po události PreRequestHandlerExcute dočasně okno HttpModule předává kontrolu kontejneru HttpHandler pro skutečné zpracování HTTP požadavků.

Uvnitř kontejneru HttpHandler se metoda ProcessRequest vykonává pro zpracování HTTP požadavků. Po zpracování celého HTTP požadavku kontejnerem HttpHandler vrací kontrolu HttpModulu, který pokračuje v předávání zpracovaných HTTP požadavků tok po vrstvách, dokud nejsou vráceny klientovi.

Instance

Struktura projektu



Kód MyHttpModule

Zaregistrujte vlastní HttpModule ve web.config

Prohlížení stránky Default.aspx



Jaké je tedy pořadí provedení série událostí v životním cyklu?


Prohlédněte si výsledky



Použijte HttpModule k ukončení HTTP požadavku


výsledek



shrnutí

Zde představujeme nejdůležitější rozhraní v životním cyklu asp.net, IHttpModule, které lze popsat jako event interface, protože v metodě Init v implementační třídě lze registrovat různé události v životním cyklu a v události definovat různé logiky.





Předchozí:Asp.Net IHttpHandler představen
Další:C# musí tento obcházení hlavičky upravit příslušnými atributy nebo metodami
 Pronajímatel| Zveřejněno 13.03.2018 21:46:47 |
. NETFramework 4.5 nabízí 25 standardních událostí.


 Pronajímatel| Zveřejněno 13.03.2018 21:47:03 |
. NETFramework 4.0, který nabízí 19 standardních událostí.

1. BeginRequest: První událost asp.net zahájení zpracování požadavku, což označuje začátek zpracování.

2. AuthenticateRequest: Žádost o autentizaci, obvykle používaná k získání uživatelských údajů o požadavku.

3. PostAuthenticateRequest: Uživatelské informace, které byly požádány.

4. AuthorizeRequest: Authorization, obvykle používaná k ověření, zda byl uživatelův požadavek oprávněn.

5. PostAuthorizeRequest: Uživatelská žádost byla autorizována.

6. ResolveRequestCache: Získejte výsledky zpracování předchozí cache zpracování, pokud byla dříve uložena, není třeba požadavek zpracovávat a přímo vracet uložené výsledky.

7. PostResolveRequestCache: Cache byla zpracována.

8. PostMapRequestHandler: Požadovaný procesorový objekt byl vytvořen na základě uživatelského požadavku.

9. AcquireRequestState: Získejte stav požadavku, který se obvykle používá pro relaci

10. Stav požadavku po získání: Relace byla získána

11. PreRequestHandlerExecute: Připravte vykonávací handler.

12. PostRequestHandlerExecute: Handler byl vykonán

13. Stav žádosti o uvolnění: Stav žádosti o uvolnění.

14. Stav žádosti po uvolnění: Stav žádosti byl zveřejněn.

15. UpdateRequestCache: Aktualizujte cache.

16. PostUpdateRequestCache: Cache byla aktualizována.

17. LogRequest: Požadovaná operace logu

18. PostLogRequest: Logovací operace požadavku byla dokončena.

19. EndRequest: Žádost je zpracována.
Zveřejněno 22.04.2019 9:48:33 |
Uložte si to do záložek
Zveřejněno 30.09.2021 19:19:09 |
Nedávno studuji. Přečti si to pozorně
 Pronajímatel| Zveřejněno 14.07.2023 20:26:36 |
ASP.NET MVC počítá požadavky založené na modulech IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com