Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 51405|Risposta: 5

[ASP.NET] asp.net'interfaccia IHttpModule è spiegata in dettaglio

[Copiato link]
Pubblicato su 13/03/2018 21:46:06 | | | |
Scritto davanti

Per quanto riguarda il contenuto rilevante di IHttpModule, mi è stato anche chiesto durante il colloquio, e ho avuto la sensazione vaga che questa interfaccia abbia un metodo Init, che può registrare una serie di eventi con il metodo Init nella classe di implementazione. A casa questo fine settimana, non c'è davvero nulla da fare, anche se si tratta di verificare e colmare le lacune in questa conoscenza.

Funziona l'IHttpModule

Gli amici che conoscono asp.net ciclo di vita dovrebbero sapere che l'esecuzione di HttpModule viene eseguita prima di HttpHandler, e dopo aver eseguito una serie di eventi di HttpModule, poi eseguire HttpHandler e infine alcuni eventi di HttpModule. Per dettagli, si prega di consultare il seguente diagramma del ciclo di vita.



L'HttpHandler è il luogo dove gestire la richiesta http, l'HttpModule è l'"unico modo" per una richiesta HTTP, quindi puoi aggiungere alcune informazioni richieste sopra quelle HTTP prima che questa richiesta venga passata al vero centro di elaborazione richieste (HttpHandler), oppure fare qualche lavoro aggiuntivo sulle informazioni intercettate della richiesta HTTP. Oppure, in alcuni casi, semplicemente terminare le richieste HTTP che soddisfano alcune condizioni, che possono fungere da filtro.

Una richiesta HTTP verrà passata al container HttpHandler in un momento (evento ResolveRequestCache) durante la consegna del container HttpModule. Dopo questo evento, il container HttpModule crea un'istanza di ingresso dell'HttpHandler, ma invece di cedere il controllo della richiesta HTTP, continua a lanciare gli eventi AcquireRequestState e PreRequestHandlerExcute. Dopo l'evento PreRequestHandlerExcute, la finestra HttpModule dà temporaneamente il controllo al container HttpHandler per l'elaborazione reale delle richieste HTTP.

All'interno del contenitore HttpHandler, viene eseguito il metodo ProcessRequest per gestire le richieste HTTP. Dopo che l'HttpHandler del container ha elaborato l'intera richiesta HTTP, restituisce il controllo all'HttpModule, che continua a passare le informazioni della richiesta HTTP processata layer per layer finché non viene restituita al client.

Un'istanza

Struttura del progetto



Codice MyHttpModule

Registra un HttpModule personalizzato su web.config

Sfoglia la pagina Default.aspx



Qual è quindi l'ordine di esecuzione di una serie di eventi nel ciclo vitale?


Sfoglia i risultati



Usa HttpModule per terminare la richiesta Http


risultato



sommario

Qui introduciamo l'interfaccia più importante nel ciclo di vita asp.net, IHttpModule, che può essere descritta come un'interfaccia evento, perché nel metodo Init nella classe di implementazione vari eventi nel ciclo di vita possono essere registrati e varie logiche possono essere definite nell'evento.





Precedente:Asp.Net introduzione di IHttpHandler
Prossimo:C# deve modificare questa soluzione alternativa dell'intestazione con gli attributi o i metodi appropriati
 Padrone di casa| Pubblicato su 13/03/2018 21:46:47 |
. NETFramework 4.5 offre 25 eventi standard.


 Padrone di casa| Pubblicato su 13/03/2018 21:47:03 |
. NETFramework 4.0, che offre 19 eventi standard.

1. BeginRequest: Il primo evento di asp.net per iniziare l'elaborazione della richiesta, indicando l'inizio dell'elaborazione.

2. AuthenticateRequest: Richiesta di autenticazione, generalmente utilizzata per ottenere le informazioni utente della richiesta.

3. PostAuthenticateRequest: Le informazioni utente richieste.

4. AuthorizeRequest: Authorization, generalmente utilizzata per verificare se la richiesta dell'utente ha ricevuto il permesso.

5. PostAuthorizeRequest: La richiesta dell'utente è stata autorizzata.

6. ResolveRequestCache: Ottenere i risultati di elaborazione della cache di elaborazione precedente, se è già stata memorizzata in cache, non è necessario elaborare la richiesta e restituire direttamente i risultati nella cache.

7. PostResolveRequestCache: La cache è stata elaborata.

8. PostMapRequestHandler: L'oggetto processore richiesto è stato creato sulla base della richiesta dell'utente.

9. AcquisireRequestState: Ottenere lo stato della richiesta, generalmente utilizzata per la sessione

10. PostAcquiseRequestState: La sessione è stata ottenuta

11. PreRequestHandlerExecute: Preparare il gestore di esecuzione.

12. PostRequestHandlerExecute: Il gestore è stato eseguito

13. RilascioRilascioStato: Stato della richiesta di rilascio.

14. PostRilascioRichiestaStato: Lo stato della richiesta è stato reso pubblico.

15. UpdateRequestCache: Aggiorna la cache.

16. PostUpdateRequestCache: La cache è stata aggiornata.

17. LogRequest: L'operazione di log richiesta

18. PostLogRequest: L'operazione di log della richiesta è stata completata.

19. Fine richiesta: La richiesta è stata elaborata.
Pubblicato su 22/04/2019 09:48:33 |
Salvalo ai preferiti
Pubblicato su 30/09/2021 19:19:09 |
Recentemente ho studiato. Leggilo attentamente
 Padrone di casa| Pubblicato su 14/07/2023 20:26:36 |
ASP.NET MVC conta le richieste basate sui moduli IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com