Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 51405|Atbildi: 5

[ASP.NET] asp.net IHttpModule interfeiss ir detalizēti izskaidrots

[Kopēt saiti]
Publicēts 13.03.2018 21:46:06 | | | |
Uzrakstīts priekšā

Attiecībā uz attiecīgo IHttpModule saturu man tika jautāts arī intervijas laikā, un es neskaidri jutu, ka šai saskarnei ir Init metode, kas var reģistrēt virkni notikumu ar Init metodi ieviešanas klasē. Mājās šajā nedēļas nogalē patiešām nav ko darīt, pat ja tas ir pārbaudīt un aizpildīt nepilnības šajās zināšanās.

IHttpModule darbojas

Draugiem, kuri pārzina asp.net dzīves ciklu, jāzina, ka HttpModule izpilde tiek izpildīta pirms HttpHandler un pēc HttpModule notikumu sērijas izpildes, pēc tam HttpHandler izpildes un pēc tam dažu HttpModule notikumu izpildes. Detalizētu informāciju skatiet tālāk esošajā dzīves cikla diagrammā.



HttpHandler ir vieta, kur apstrādāt http pieprasījumu, HttpModule ir "vienīgais veids" HTTP pieprasījumam, tāpēc jūs varat pievienot nepieciešamo informāciju virs HTTP pieprasījuma informācijas, pirms šis HTTP pieprasījums tiek nodots reālajam pieprasījumu apstrādes centram (HttpHandler), vai veikt papildu darbu ar pārtverto HTTP pieprasījuma informāciju. Vai dažos gadījumos vienkārši pārtrauciet HTTP pieprasījumus, kas atbilst dažiem nosacījumiem, kas var darboties kā filtrs.

HTTP pieprasījums tiks nodots HttpHandler konteineram kādā brīdī (notikums ResolveRequestCache) HttpModule konteinera piegādes laikā. Pēc šī notikuma HttpModule konteiners izveido HttpHandler ieejas instanci, bet tā vietā, lai atteiktos no HTTP pieprasījuma kontroles, tas turpina aktivizēt notikumus AcquireRequestState un PreRequestHandlerExcute. Pēc notikuma PreRequestHandlerExcute HttpModule logs īslaicīgi piešķir kontroli HttpHandler konteineram reālai HTTP pieprasījuma apstrādei.

HttpHandler konteinerā tiek izpildīta metode ProcessRequest, lai apstrādātu HTTP pieprasījumus. Pēc tam, kad konteiners HttpHandler apstrādā visu HTTP pieprasījumu, tas atgriež kontroli HttpModule, kas turpina nodot apstrādāto HTTP pieprasījuma informācijas plūsmu slāni pa slānim, līdz tas tiek atgriezts klientam.

Piemērs

Projekta struktūra



MyHttpModule kods

Pielāgota HttpModule reģistrēšana vietnē web.config

Pārlūkot lapu Default.aspx



Tātad, kāda ir notikumu sērijas izpildes kārtība dzīves ciklā?


Pārlūkojiet rezultātus



HttpModule izmantošana, lai pārtrauktu Http pieprasījumu


Rezultātu



Kopsavilkuma

Šeit mēs iepazīstinām ar vissvarīgāko saskarni asp.net dzīves ciklā, IHttpModule, ko var raksturot kā notikumu interfeisu, jo Init metodē ieviešanas klasē var reģistrēt dažādus dzīves cikla notikumus, un notikumā var definēt dažādu loģiku.





Iepriekšējo:Asp.Net ieviests IHttpHandler
Nākamo:C# ir jāmodificē šis galvenes risinājums ar atbilstošiem atribūtiem vai metodēm
 Saimnieks| Publicēts 13.03.2018 21:46:47 |
. NETFramework 4.5 nodrošina 25 standarta notikumus.


 Saimnieks| Publicēts 13.03.2018 21:47:03 |
. NETFramework 4.0, kas nodrošina 19 standarta notikumus.

1. BeginRequest: pirmais notikums, kad asp.net sākt pieprasījuma apstrādi, norādot apstrādes sākumu.

2. AuthenticateRequest: autentifikācijas pieprasījums, ko parasti izmanto, lai iegūtu pieprasījuma lietotāja informāciju.

3. PostAuthenticateRequest: pieprasītā lietotāja informācija.

4. AuthorizeRequest: autorizācija, ko parasti izmanto, lai pārbaudītu, vai lietotāja pieprasījumam ir piešķirta atļauja.

5. PostAuthorizeRequest: Lietotāja pieprasījums ir autorizēts.

6. ResolveRequestCache: iegūstiet iepriekšējās apstrādes kešatmiņas apstrādes rezultātus, ja tā iepriekš ir saglabāta kešatmiņā, tad pieprasījums nav jāapstrādā un tieši jāatgriež kešatmiņā saglabātie rezultāti.

7. PostResolveRequestCache: kešatmiņa ir apstrādāta.

8. PostMapRequestHandler: pieprasītais procesora objekts ir izveidots, pamatojoties uz lietotāja pieprasījumu.

9. AcquireRequestState: iegūstiet pieprasījuma statusu, kas parasti tiek izmantots sesijai

10. PostAcquireRequestState: sesija ir iegūta

11. PreRequestHandlerExecute: Sagatavojiet izpildes apdarinātāju.

12. PostRequestHandlerExecute: apdarinātājs ir izpildīts

13. ReleaseRequestState: izlaišanas pieprasījuma stāvoklis.

14. PostReleaseRequestState: pieprasījuma statuss ir atbrīvots.

15. UpdateRequestCache: atjauniniet kešatmiņu.

16. PostUpdateRequestCache: kešatmiņa ir atjaunināta.

17. LogRequest: pieprasītā žurnāla operācija

18. PostLogRequest: pieprasījuma žurnāla darbība ir pabeigta.

19. EndRequest: pieprasījums tiek apstrādāts.
Publicēts 22.04.2019 09:48:33 |
Atzīmējiet to ar grāmatzīmi
Publicēts 30.09.2021 19:19:09 |
Nesen studēju. Uzmanīgi izlasiet to
 Saimnieks| Publicēts 14.07.2023 20:26:36 |
ASP.NET MVC skaita pieprasījumus, pamatojoties uz IHttpModule moduļiem
https://www.itsvse.com/thread-10627-1-1.html
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com