INFO: Introduzione a moduli e gestori HTTP ASP.NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 307985 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato precedentemente pubblicato con il codice di riferimento I307985
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene data una descrizione introduttiva dei moduli HTTP e dei gestori HTTP di ASP.NET.

Per ulteriori informazioni a carattere preliminare su ASP.NET, vedere il seguente articolo della Knowledge Base (gli articoli con prefisso "Q" contengono informazioni in inglese):
305140 INFO: ASP.NET Roadmap

Informazioni

I moduli e i gestori HTTP costituiscono parte integrante dell'architettura ASP.NET. Durante l'elaborazione di una richiesta intervengono vari moduli HTTP, ad esempio quello di autenticazione e quello di sessione, e successivamente la richiesta viene elaborata da un unico gestore HTTP. Terminata l'elaborazione della richiesta da parte del gestore, la richiesta torna ai moduli HTTP.

Questo articolo Ŕ suddiviso nelle seguenti sezioni:

Moduli HTTP

I moduli vengono richiamati prima e dopo l'esecuzione del gestore. Consentono agli sviluppatori di intercettare, intervenire o modificare ogni singola richiesta. I moduli implementano l'interfaccia IHttpModule che si trova nello spazio dei nomi System.Web.

Eventi disponibili

Una classe HttpApplication fornisce un certo numero di eventi con i quali i moduli possono essere sincronizzati. Per la sincronizzazione dei moduli su ogni richiesta sono disponibili gli eventi seguenti, elencati in ordine sequenziale:
  • BeginRequest: la richiesta Ŕ stata avviata. Se Ŕ necessario eseguire una certa operazione all'inizio della richiesta, ad esempio visualizzare banner pubblicitari nella parte superiore di ogni pagina, sincronizzare questo evento.
  • AuthenticateRequest: se si desidera inserire uno schema di autenticazione personalizzato, ad esempio ricercare un utente in un database per convalidarne la password, creare un modulo che sincronizzi questo evento ed esegua l'autenticazione dell'utente nel modo desiderato.
  • AuthorizeRequest: questo evento viene utilizzato internamente per implementare i meccanismi di autenticazione, ad esempio per memorizzare gli elenchi di controllo di accesso (ACL) in un database anzichÚ nel file system. Per quanto sia possibile ignorare questo evento, non sono molte le motivazioni valide per farlo.
  • ResolveRequestCache: questo evento determina se una pagina pu˛ essere fornita dalla cache di output. Se si desidera scrivere un modulo di cache personalizzato, ad esempio creando una cache basata su file anzichÚ su memoria, sincronizzare questo evento per determinare se la pagina deve essere fornita dalla cache.
  • AcquireRequestState: lo stato della sessione viene ricavato dalla memorizzazione di stato. Per creare un modulo personalizzato di gestione dello stato, sincronizzare questo evento per ricavare lo stato della sessione dalla memorizzazione di stato.
  • PreRequestHandlerExecute: questo evento si verifica prima dell'esecuzione del gestore HTTP.
  • PostRequestHandlerExecute: questo evento si verifica dopo l'esecuzione del gestore HTTP.
  • ReleaseRequestState: lo stato della sessione viene archiviato nella memorizzazione di stato. Se si crea un modulo personalizzato di stato della sessione, Ŕ necessario archiviare lo stato nella memorizzazione di stato.
  • UpdateRequestCache: questo evento scrive l'output di nuovo nella cache di output. Se si crea un modulo di cache personalizzato, scrivere l'output di nuovo nella cache.
  • EndRequest: la richiesta Ŕ stata completata. Pu˛ essere opportuno creare un modulo di debug che raccolga le informazioni della richiesta e le scriva nella pagina.
Per la sincronizzazione dei moduli su ogni trasmissione di richiesta sono disponibili gli eventi seguenti, il cui ordine non Ŕ deterministico.
  • PreSendRequestHeaders: questo evento si verifica prima dell'invio delle intestazioni. Per aggiungere altre intestazioni, sincronizzare l'evento da un modulo personalizzato.
  • PreSendRequestContent: l'evento si verifica quando il metodo Response.Flush viene richiamato. Per aggiungere altro contenuto, sincronizzare l'evento da un modulo personalizzato.
  • Error: questo evento si verifica in occasione di un'eccezione non gestita. Per scrivere un modulo personalizzato di gestione degli errori, sincronizzare questo evento.

Configurazione dei moduli HTTP

Il gestore della sezione di configurazione <httpModules> Ŕ responsabile della configurazione dei moduli HTTP all'interno di un'applicazione. Pu˛ essere dichiarato a livello di computer, sito o applicazione. Utilizzare la sintassi seguente per il gestore di sezione <httpModules>:
<httpModules>
   <add type="[COM+ Class], [Assembly]" name="[ModuleName]" />
   <remove type="[COM+ Class], [Assembly]" name="[ModuleName]" />
   <clear />
</httpModules>

Creazione dei moduli HTTP

Per creare un modulo HTTP, implementare l'interfaccia IHttpModule. L'interfaccia IHttpModule dispone di due metodi con i seguenti identificativi:
void Init(HttpApplication);
void Dispose();
Per ulteriori informazioni sulla creazione di moduli HTTP, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito (gli articoli con prefisso "Q" contengono informazioni in inglese):
308000 HOW TO: Create an ASP.NET HTTP Module by Using Visual Basic .NET
307996 HOW TO: Create an ASP.NET HTTP Module by Using Visual C# .NET

Gestori HTTP

I gestori consentono di elaborare singole richieste endpoint. Consentono alla struttura ASP.NET di elaborare singoli URL HTTP o gruppi di estensioni URL all'interno di un'applicazione. Diversamente dai moduli, per elaborare una richiesta Ŕ utilizzato un solo gestore. Tutti i gestori implementano l'interfaccia IHttpHandler che si trova nello spazio dei nomi System.Web. I gestori possono essere assimilati alle estensioni ISAPI (Internet Server Application Programming Interface).

Configurazione dei gestori HTTP

Il gestore della sezione di configurazione <httpHandlers> Ŕ responsabile della mappatura di URL in arrivo nella classe IHttpHandler oppure nella classe IHttpHandlerFactory. Pu˛ essere dichiarato a livello di computer, sito o applicazione. Le sottodirectory ereditano queste impostazioni.

Gli amministratori utilizzano l'istruzione tag <add> per configurare la sezione <httpHandlers>. Le istruzioni <add> vengono interpretate ed elaborate nell'ordine sequenziale dall'alto verso il basso. Utilizzare la sintassi seguente per il gestore di sezione <httpHandlers>:
<httpHandlers>
   <add verb="[verb list]" path="[path/wildcard]" type="[COM+ Class], [Assembly]" validate="[true/false]" />
   <remove verb="[verb list]" path="[path/wildcard]" />
   <clear />
</httpHandlers>

Creazione dei gestori HTTP

Per creare un gestore HTTP, implementare l'interfaccia IHttpHandler . L'interfaccia IHttpHandler dispone di un metodo e di una proprietÓ con i seguenti identificativi:
void ProcessRequest(HttpContext);
bool IsReusable {get;}
Per ulteriori informazioni sulla creazione di gestori HTTP, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito (gli articoli con prefisso "Q" contengono informazioni in inglese):
308001 HOW TO: Create an ASP.NET HTTP Handler by Using Visual C# .NET
Per ulteriori informazioni, fare clic sui numeri degli articoli della Knowledge Base riportati di seguito (gli articoli con prefisso "Q" contengono informazioni in inglese):
307997 HOW TO: Create an ASP.NET HTTP Handler by Using Visual Basic .NET

ProprietÓ

Identificativo articolo: 307985 - Ultima modifica: martedý 8 aprile 2003 - Revisione: 2.0
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET (fornito con .NET Framework)
Chiavi:á
kbarttyperoadmap kbaspnet kbgrpdsasp kbhttpruntime kbinfo KB307985
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Dichiarazione di non responsabilitÓ per articoli della Microsoft Knowledge Base su prodotti non pi¨ supportati
Questo articolo Ŕ stato scritto sui prodotti per cui Microsoft non offre pi¨ supporto. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com