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.
|