Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 51405|Vastaus: 5

[ASP.NET] asp.net IHttpModule-rajapinta selitetään yksityiskohtaisesti

[Kopioi linkki]
Julkaistu 13.3.2018 21.46.06 | | | |
Kirjoitettu edessä

IHttpModulen relevantista sisällöstä minulta kysyttiin myös haastattelussa, ja epämääräisesti tunsin, että tässä rajapinnassa on Init-metodi, joka voi rekisteröidä tapahtumasarjan Init-menetelmällä toteutuskurssilla. Kotona tänä viikonloppuna ei oikeastaan ole mitään tehtävissä, edes tarkistamassa ja täyttämässä tämän tiedon aukkoja.

IHttpModule-työt

Ystävät, jotka tuntevat asp.net elinkaaren, tietävät, että HttpModulin suoritus suoritetaan ennen HttpHandleria, ja sen jälkeen, kun HttpModulen tapahtumasarja on suoritettu, sitten suoritettu HttpHandler ja lopuksi suoritettu joitakin HttpModulen tapahtumia. Lisätietoja löydät seuraavasta elinkaaren kaaviosta.



HttpHandler on paikka, jossa käsitellään HTTP-pyyntöä, HttpModule on "ainoa tapa" HTTP-pyynnölle, joten voit lisätä tarvittavaa tietoa HTTP-pyynnön tietojen päälle ennen kuin tämä HTTP-pyyntö siirretään varsinaiseen pyyntöjen käsittelykeskukseen (HttpHandler), tai tehdä lisätyötä siepattujen HTTP-pyyntötietojen parissa. Tai joissain tapauksissa yksinkertaisesti lopeta HTTP-pyynnöt, jotka täyttävät tietyt ehdot, mikä voi toimia suodattimena.

HTTP-pyyntö välitetään HttpHandler-konttiin jossain vaiheessa (ResolveRequestCache-tapahtuma) HttpModule-kontin toimituksen aikana. Tämän tapahtuman jälkeen HttpModule-kontti luo HttpHandlerin sisääntuloinstanssin, mutta sen sijaan, että se luovuttaisi HTTP-pyynnön hallinnan, se jatkaa AcquireRequestState- ja PreRequestHandlerExcute-tapahtumien käynnistämistä. PreRequestHandlerExcute-tapahtuman jälkeen HttpModule-ikkuna antaa väliaikaisesti ohjauksen HttpHandler-kontille varsinaista HTTP-pyyntöjen käsittelyä varten.

HttpHandler-kontin sisällä suoritetaan ProcessRequest-metodi HTTP-pyyntöjen käsittelyyn. Kun kontti-HttpHandler käsittelee koko HTTP-pyynnön, se palauttaa ohjauksen HttpModulelle, joka jatkaa käsitellyn HTTP-pyynnön tiedonkulkujen välittämistä kerros kerrokselta, kunnes se palautetaan asiakkaalle.

Esimerkki

Projektin rakenne



MyHttpModule-koodi

Rekisteröi mukautettu HttpModule web.configissa

Selaa sivua Default.aspx



Mikä siis on tapahtumasarjan toteutusjärjestys elinkaaren aikana?


Selaa tuloksia



Käytä HttpModulea Http-pyynnön lopettamiseen


tulos



yhteenveto

Tässä esittelemme asp.net elinkaaren tärkeimmän rajapinnan, IHttpModulen, jota voidaan kuvata tapahtumarajapinnaksi, koska toteutusluokan Init-menetelmässä voidaan rekisteröidä erilaisia elinkaaren tapahtumia ja erilaisia logiikkaa voidaan määritellä tapahtumassa.





Edellinen:Asp.Net IHttpHandler esitelty
Seuraava:C#:n täytyy muokata tätä otsikkokiertotietä sopivilla attribuuteilla tai metodeilla
 Vuokraisäntä| Julkaistu 13.3.2018 21.46.47 |
. NETFramework 4.5 tarjoaa 25 vakiotapahtumaa.


 Vuokraisäntä| Julkaistu 13.3.2018 21.47.03 |
. NETFramework 4.0, joka tarjoaa 19 vakiotapahtumaa.

1. BeginRequest: Ensimmäinen tapahtuma asp.net pyynnön käsittelyn aloittamiseksi, mikä osoittaa käsittelyn alkamisen.

2. AuthenticateRequest: Todennuspyyntö, jota käytetään yleensä pyynnön käyttäjätietojen hankkimiseen.

3. PostAuthenticateRequest: Käyttäjätiedot, joita on pyydetty.

4. AuthorizeRequest: Valtuutus, jota käytetään yleensä tarkistamaan, onko käyttäjän pyyntö saanut luvan.

5. PostAuthorizeRequest: Käyttäjäpyyntö on valtuutettu.

6. ResolveRequestCache: Hanki edellisen käsittelyvälimuistin käsittelytulokset; jos se on välimuistitettu aiemmin, pyyntöä ei tarvitse käsitellä ja palauttaa välimuistissa olevat tulokset suoraan.

7. PostResolveRequestCache: Välimuisti on käsitelty.

8. PostMapRequestHandler: Pyydetty prosessorin objekti on luotu käyttäjän pyynnön perusteella.

9. AcquireRequestState: Hanki pyynnön tila, jota yleensä käytetään istunnossa

10. PostAcquireRequestState: Istunto on saatu

11. PreRequestHandlerExecute: Valmistele suorituskäsittelijä.

12. PostRequestHandlerExecute: Käsittelijä on suoritettu

13. ReleaseRequestState: Vapautuspyynnön tila.

14. PostReleaseRequestState: Pyynnön tila on julkaistu.

15. UpdateRequestCache: Päivitä välimuisti.

16. PostUpdateRequestCache: Välimuisti on päivitetty.

17. LogRequest: Lokitoiminto pyydetty

18. PostLogRequest: Pyynnön lokitoiminto on suoritettu.

19. EndRequest: Pyyntö käsitellään.
Julkaistu 22.4.2019 9.48.33 |
Tallenna se kirjanmerkkeihin
Julkaistu 30.9.2021 19.19.09 |
Olen viime aikoina opiskellut. Lue se huolellisesti
 Vuokraisäntä| Julkaistu 14.7.2023 20.26.36 |
ASP.NET MVC laskee pyynnöt IHttpModule-moduulien perusteella
https://www.itsvse.com/thread-10627-1-1.html
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com