Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 51405|Válasz: 5

[ASP.NET] asp.net IHttpModule interfészt részletesen ismerteti

[Linket másol]
Közzétéve 2018. 03. 13. 21:46:06 | | | |
Előre írva

Az IHttpModule releváns tartalmával kapcsolatban az interjú során engem is megkérdeztek, és halványan úgy éreztem, hogy ennek az interfésznek van egy Init módszere, amely képes eseménysorozatot regisztrálni az Init módszerrel az implementációs osztályban. Otthon ezen a hétvégén igazából nincs mit tenni, még akkor sem, ha ellenőrizni és kiegészíteni a hiányosságokat ebben a tudásban.

IHttpModule munkái

Azok a barátok, akik ismerik asp.net életciklust, tudják, hogy a HttpModule végrehajtása a HttpHandler előtt történik, majd egy sor HttpModule esemény végrehajtása után, majd a HttpHandler futtatása, majd néhány HttpModule esemény végrehajtása után. Részletekért kérjük, tekintse meg az alábbi életciklus-diagramot.



A HttpHandler a HTTP kérés kezelésére alkalmas, a HttpModule pedig az "egyetlen mód" egy HTTP kéréshez, így néhány szükséges információt hozzáadhatsz a HTTP kérés adatai fölé, mielőtt ezt a HTTP kérést továbbítanák a valódi kérésfeldolgozó központba (HttpHandler), vagy további munkát végezhetsz az elfogott HTTP kérés információin. Vagy bizonyos esetekben egyszerűen megszüntethetjük azokat a HTTP kéréseket, amelyek megfelelnek bizonyos feltételeknek, és ezek szűrőként működhetnek.

Egy HTTP kérés továbbításra kerül a HttpHandler konténerbe (ResolveRequestCache esemény) a HttpModule konténer kézbesítése során. E esemény után a HttpModule konténer létrehoz egy belépő példányt a HttpHandlerből, de ahelyett, hogy átadja volna a HTTP kérés irányítását, továbbra is indítja az AcquireRequestState és a PreRequestHandlerExcute eseményeket. A PreRequestHandlerExcute esemény után a HttpModule ablak ideiglenesen átadja az irányítást a HttpHandler konténernek a valódi HTTP kérésfeldolgozás érdekében.

A HttpHandler konténerben a ProcessRequest metódus fut le HTTP kérések kezelésére. Miután a konténer HttpHandler feldolgozza az egész HTTP kérést, visszaadja az irányítást a HttpModulnak, amely rétegről rétegre továbbítja a feldolgozott HTTP kérés információáramlását, amíg vissza nem tér az ügyfélhez.

Egy példa

Projekt szerkezete



MyHttpModule kód

Regisztrálj egy egyedi HttpModule a web.config oldalon

Böngéssze az oldalt Default.aspx



Mi a végrehajtási sorrend az életciklus eseménysorozatában?


Böngésszük az eredményeket



Használd a HttpModule használatát a Http kérés megszüntetéséhez


eredmény



összefoglalás

Itt bemutatjuk a asp.net életciklus legfontosabb interfészét, az IHttpModule-t, amely eseményinterfészként is leírható, mert az implementációs osztály Init módszerében az életciklus különböző eseményei regisztrálhatók, és különböző logikai elemek definiálhatók az eseményben.





Előző:Asp.Net IHttpHandler bemutatása
Következő:C#-nak módosítania kell ezt a fejlécmegoldást a megfelelő attribútumokkal vagy metódusokkal
 Háziúr| Közzétéve 2018. 03. 13. 21:46:47 |
. A NETFramework 4.5 25 szabványos eseményt kínál.


 Háziúr| Közzétéve 2018. 03. 13. 21:47:03 |
. A NETFramework 4.0, amely 19 szabványos eseményt biztosít.

1. BeginRequest: Az első esemény a asp.net megkezdésében, amely a feldolgozás kezdetét jelzi.

2. AuthenticateRequest: Hitelesítési kérés, amelyet általában a kérés felhasználói adatainak megszerzésére használnak.

3. PostAuthenticateRequest: A kért felhasználói adatok.

4. AuthorizeRequest: AuthorizeRequest, általában arra használják, hogy ellenőrizzék, kapta-e engedélyt a felhasználó kérésének.

5. PostAuthorizeRequest: A felhasználói kérés engedélyezve lett.

6. ResolveRequestCache: Szerezze meg az előző feldolgozó gyorsítótár feldolgozási eredményeit, ha korábban gyorsatározták, akkor nincs szükség a kérés feldolgozására, és közvetlenül visszaküldeni a gyorsítótározott eredményeket.

7. PostResolveRequestCache: A gyorstár feldolgozásra került.

8. PostMapRequestHandler: A kért processzorobjektumot a felhasználó kérése alapján hozták létre.

9. AcquireRequestState: Szerezze meg a kérés státuszát, amelyet általában a sessionhez használnak

10. PostAcquireRequestState: A szekció megszerezve

11. PreRequestHandlerExecute: Készítsd elő a végrehajtó kezelőt.

12. PostRequestHandlerExecute: A kezelőt végrehajtották

13. ReleaseRequestState: A kiadási kérelem állapota.

14. PostReleaseRequestState: A kérelem státusza feladva.

15. UpdateRequestCache: Frissítse a gyorsítótárt.

16. PostUpdateRequestCache: A gyorsítótár frissült.

17. LogRequest: A napló művelet kért

18. PostLogRequest: A kérelem napló művelete befejeződött.

19. EndRequest: A kérés feldolgozásra kerül.
Közzétéve 2019. 04. 22. 9:48:33 |
Könyvjelzője
Közzétéve 2021. 09. 30. 19:19:09 |
Mostanában tanulok. Olvasd el alaposan
 Háziúr| Közzétéve 2023. 07. 14. 20:26:36 |
ASP.NET MVC IHttpModule modulok alapján számolja a kéréseket
https://www.itsvse.com/thread-10627-1-1.html
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com