HttpApplication Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce metodi, proprietà ed eventi comuni a tutti gli oggetti applicazione all'interno di un'applicazione ASP.NET. Questa classe è la classe base per le applicazioni definite dall'utente nel file Global.asax.
public ref class HttpApplication : IDisposable, System::ComponentModel::IComponent, System::Web::IHttpAsyncHandler
public class HttpApplication : IDisposable, System.ComponentModel.IComponent, System.Web.IHttpAsyncHandler
type HttpApplication = class
interface IHttpAsyncHandler
interface IHttpHandler
interface IComponent
interface IDisposable
type HttpApplication = class
interface IComponent
interface IDisposable
interface IHttpAsyncHandler
interface IHttpHandler
Public Class HttpApplication
Implements IComponent, IDisposable, IHttpAsyncHandler
- Ereditarietà
-
HttpApplication
- Implementazioni
Esempio
I due esempi seguenti illustrano come usare la HttpApplication classe e i relativi eventi. Il primo esempio illustra come creare un modulo HTTP personalizzato e connetterlo a esso. Nel secondo esempio viene illustrato come modificare il file Web.config.
L'esempio seguente illustra come creare un modulo HTTP personalizzato e connettere l'evento AcquireRequestState al modulo HTTP. I moduli HTTP intercettano ogni richiesta alle risorse dell'applicazione Web, consentendo così di filtrare le richieste client. Qualsiasi modulo HTTP che sottoscrive un HttpApplication evento deve implementare l'interfaccia IHttpModule .
using System;
using System.Web;
namespace Samples.AspNet.CS
{
public class CustomHTTPModule : IHttpModule
{
public CustomHTTPModule()
{
// Class constructor.
}
// Classes that inherit IHttpModule
// must implement the Init and Dispose methods.
public void Init(HttpApplication app)
{
app.AcquireRequestState += new EventHandler(app_AcquireRequestState);
app.PostAcquireRequestState += new EventHandler(app_PostAcquireRequestState);
}
public void Dispose()
{
// Add code to clean up the
// instance variables of a module.
}
// Define a custom AcquireRequestState event handler.
public void app_AcquireRequestState(object o, EventArgs ea)
{
HttpApplication httpApp = (HttpApplication)o;
HttpContext ctx = HttpContext.Current;
ctx.Response.Write(" Executing AcquireRequestState ");
}
// Define a custom PostAcquireRequestState event handler.
public void app_PostAcquireRequestState(object o, EventArgs ea)
{
HttpApplication httpApp = (HttpApplication)o;
HttpContext ctx = HttpContext.Current;
ctx.Response.Write(" Executing PostAcquireRequestState ");
}
}
}
Imports System.Web
Namespace Samples.AspNet.VB
Public Class CustomHTTPModule
Implements IHttpModule
Public Sub New()
' Class constructor.
End Sub
' Classes that inherit IHttpModule
' must implement the Init and Dispose methods.
Public Sub Init(ByVal app As HttpApplication) Implements IHttpModule.Init
AddHandler app.AcquireRequestState, AddressOf app_AcquireRequestState
AddHandler app.PostAcquireRequestState, AddressOf app_PostAcquireRequestState
End Sub
Public Sub Dispose() Implements IHttpModule.Dispose
' Add code to clean up the
' instance variables of a module.
End Sub
' Define a custom AcquireRequestState event handler.
Public Sub app_AcquireRequestState(ByVal o As Object, ByVal ea As EventArgs)
Dim httpApp As HttpApplication = CType(o, HttpApplication)
Dim ctx As HttpContext = HttpContext.Current
ctx.Response.Write(" Executing AcquireRequestState ")
End Sub
' Define a custom PostAcquireRequestState event handler.
Public Sub app_PostAcquireRequestState(ByVal o As Object, ByVal ea As EventArgs)
Dim httpApp As HttpApplication = CType(o, HttpApplication)
Dim ctx As HttpContext = HttpContext.Current
ctx.Response.Write(" Executing PostAcquireRequestState ")
End Sub
End Class
End Namespace
Prima che si verifichi un evento in un modulo HTTP personalizzato, è necessario modificare le impostazioni di configurazione nel file Web.config per inviare una notifica ASP.NET sul modulo HTTP. Nell'esempio seguente viene illustrata l'impostazione di configurazione appropriata nella httpModules
sezione del file Web.config. L'impostazione seguente si applica alla modalità classica di IIS 7.0 e alle versioni precedenti di IIS.
<configuration>
<system.web>
<httpModules>
<add type="Samples.AspNet.CS.CustomHTTPModule"
name="CustomHttpModule" />
</httpModules>
</system.web>
</configuration>
<configuration>
<system.web>
<httpModules>
<add type="Samples.AspNet.VB.CustomHTTPModule"
name="CustomHttpModule" />
</httpModules>
</system.web>
</configuration>
L'impostazione seguente si applica alla modalità integrata IIS 7.0.
<configuration>
<system.webServer>
<modules>
<add type="Samples.AspNet.CS.CustomHTTPModule"
name="CustomHttpModule" />
</modules>
</system.webServer>
</configuration>
<configuration>
<system.webServer>
<modules>
<add type="Samples.AspNet.VB.CustomHTTPModule"
name="CustomHttpModule" />
<modules>
</system.webServer>
</configuration>
Commenti
Le istanze della HttpApplication classe vengono create nell'infrastruttura ASP.NET, non direttamente dall'utente. Un'istanza della HttpApplication classe viene usata per elaborare molte richieste nella relativa durata. Tuttavia, può elaborare una sola richiesta alla volta. Di conseguenza, le variabili membro possono essere usate per archiviare i dati per richiesta.
Un'applicazione genera eventi che possono essere gestiti da moduli personalizzati che implementano l'interfaccia IHttpModule o dal codice del gestore eventi definito nel file Global.asax. I moduli personalizzati che implementano l'interfaccia IHttpModule possono essere inseriti nella cartella App_Code o in una DLL nella cartella Bin.
HttpApplication è stato introdotto in .NET Framework versione 3.5. Per altre informazioni, vedere Versioni e dipendenze.
Nota
Quando si esegue IIS 7.0 in modalità integrata, i moduli personalizzati nella cartella App_Code o nella cartella Bin si applicano a tutte le richieste nella pipeline di richiesta. Il codice del gestore eventi nel file Global.asax si applica solo alle richieste mappate a un gestore ASP.NET.
Gli eventi dell'applicazione vengono generati nell'ordine seguente:
-
Dopo l'evento e prima dell'evento PostResolveRequestCachePostMapRequestHandler , viene creato un gestore eventi ,ovvero una pagina corrispondente all'URL della richiesta. Quando un server esegue IIS 7.0 in modalità integrata e almeno .NET Framework versione 3.0, viene generato l'evento MapRequestHandler . Quando un server esegue IIS 7.0 in modalità classica o in una versione precedente di IIS, questo evento non può essere gestito.
-
Viene eseguito il gestore eventi.
-
Dopo la generazione dell'evento PostReleaseRequestState , tutti i filtri di risposta esistenti filtrano l'output.
-
Questo evento è supportato in modalità integrata IIS 7.0 e almeno .NET Framework 3.0
-
Questo evento è supportato in modalità integrata IIS 7.0 e almeno .NET Framework 3.0
Costruttori
HttpApplication() |
Inizializza una nuova istanza della classe HttpApplication. |
Proprietà
Application |
Ottiene lo stato corrente di un'applicazione. |
Context |
Ottiene informazioni specifiche HTTP relative alla richiesta corrente. |
Events |
Restituisce l'elenco dei delegati del gestore eventi da cui vengono elaborati tutti gli eventi dell'applicazione. |
Modules |
Restituisce l'insieme di moduli relativi all'applicazione corrente. |
Request |
Ottiene l'oggetto richiesta intrinseco relativo alla richiesta corrente. |
Response |
Ottiene l'oggetto risposta intrinseco per la richiesta corrente. |
Server |
Ottiene l'oggetto server intrinseco per la richiesta corrente. |
Session |
Ottiene l'oggetto sessione intrinseco che fornisce accesso ai dati della sessione. |
Site |
Ottiene o imposta un'interfaccia del sito per un'implementazione IComponent. |
User |
Restituisce l'oggetto utente intrinseco relativo alla richiesta corrente. |
Metodi
AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento AcquireRequestState specificato all'insieme di gestori eventi AcquireRequestState asincroni relativo alla richiesta corrente. |
AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento AcquireRequestState specificato all'insieme di gestori eventi AcquireRequestState asincroni relativo alla richiesta corrente. |
AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento AuthenticateRequest specificato all'insieme di gestori eventi AuthenticateRequest asincroni relativo alla richiesta corrente. |
AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento AuthenticateRequest specificato all'insieme di gestori eventi AuthenticateRequest asincroni relativo alla richiesta corrente. |
AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento AuthorizeRequest specificato all'insieme di gestori eventi AuthorizeRequest asincroni relativo alla richiesta corrente. |
AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento AuthorizeRequest specificato all'insieme di gestori eventi AuthorizeRequest asincroni relativo alla richiesta corrente. |
AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento BeginRequest specificato all'insieme di gestori eventi BeginRequest asincroni relativo alla richiesta corrente. |
AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento BeginRequest specificato all'insieme di gestori eventi BeginRequest asincroni relativo alla richiesta corrente. |
AddOnEndRequestAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento EndRequest specificato all'insieme di gestori eventi EndRequest asincroni relativo alla richiesta corrente. |
AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento EndRequest specificato all'insieme di gestori eventi EndRequest asincroni relativo alla richiesta corrente. |
AddOnLogRequestAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento LogRequest specificato all'insieme di gestori eventi LogRequest asincroni relativo alla richiesta corrente. |
AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento LogRequest specificato all'insieme di gestori eventi LogRequest asincroni relativo alla richiesta corrente. |
AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento MapRequestHandler specificato all'insieme di gestori eventi MapRequestHandler asincroni relativo alla richiesta corrente. |
AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento MapRequestHandler specificato all'insieme di gestori eventi MapRequestHandler asincroni relativo alla richiesta corrente. |
AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PostAcquireRequestState specificato all'insieme di gestori eventi PostAcquireRequestState asincroni relativo alla richiesta corrente. |
AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PostAcquireRequestState specificato all'insieme di gestori eventi PostAcquireRequestState asincroni relativo alla richiesta corrente. |
AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PostAuthenticateRequest specificato all'insieme di gestori eventi PostAuthenticateRequest asincroni relativo alla richiesta corrente. |
AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PostAuthorizeRequest specificato all'insieme di gestori eventi PostAuthorizeRequest asincroni relativo alla richiesta corrente. |
AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PostAuthorizeRequest specificato all'insieme di gestori eventi PostAuthorizeRequest asincroni relativo alla richiesta corrente. |
AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PostAuthorizeRequest specificato all'insieme di gestori eventi PostAuthorizeRequest asincroni relativo alla richiesta corrente. |
AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PostLogRequest specificato all'insieme di gestori eventi PostLogRequest asincroni relativo alla richiesta corrente. |
AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PostLogRequest specificato all'insieme di gestori eventi PostLogRequest asincroni relativo alla richiesta corrente. |
AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PostMapRequestHandler specificato all'insieme di gestori eventi PostMapRequestHandler asincroni relativo alla richiesta corrente. |
AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PostMapRequestHandler specificato all'insieme di gestori eventi PostMapRequestHandler asincroni relativo alla richiesta corrente. |
AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PostReleaseRequestState specificato all'insieme di gestori eventi PostReleaseRequestState asincroni relativo alla richiesta corrente. |
AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PostReleaseRequestState specificato all'insieme di gestori eventi PostReleaseRequestState asincroni relativo alla richiesta corrente. |
AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PostRequestHandlerExecute specificato all'insieme di gestori eventi PostRequestHandlerExecute asincroni relativo alla richiesta corrente. |
AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PostRequestHandlerExecute specificato all'insieme di gestori eventi PostRequestHandlerExecute asincroni relativo alla richiesta corrente. |
AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PostResolveRequestCache specificato all'insieme di gestori eventi PostResolveRequestCache asincroni relativo alla richiesta corrente. |
AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PostResolveRequestCache specificato all'insieme di gestori eventi PostResolveRequestCache asincroni relativo alla richiesta corrente. |
AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PostUpdateRequestCache specificato all'insieme di gestori eventi PostUpdateRequestCache asincroni relativo alla richiesta corrente. |
AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PostUpdateRequestCache specificato all'insieme di gestori eventi PostUpdateRequestCache asincroni relativo alla richiesta corrente. |
AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento PreRequestHandlerExecute specificato all'insieme di gestori eventi PreRequestHandlerExecute asincroni relativo alla richiesta corrente. |
AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento PreRequestHandlerExecute specificato all'insieme di gestori eventi PreRequestHandlerExecute asincroni relativo alla richiesta corrente. |
AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento ReleaseRequestState specificato all'insieme di gestori eventi ReleaseRequestState asincroni relativo alla richiesta corrente. |
AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento ReleaseRequestState specificato all'insieme di gestori eventi ReleaseRequestState asincroni relativo alla richiesta corrente. |
AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere il gestore eventi ResolveRequestCache specificato all'insieme di gestori eventi ResolveRequestCache asincroni relativo alla richiesta corrente. |
AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere il gestore eventi ResolveRequestCache specificato all'insieme di gestori eventi ResolveRequestCache asincroni relativo alla richiesta corrente. |
AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Consente di aggiungere l'evento UpdateRequestCache specificato all'insieme di gestori eventi UpdateRequestCache asincroni relativo alla richiesta corrente. |
AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Consente di aggiungere l'evento UpdateRequestCache specificato all'insieme di gestori eventi UpdateRequestCache asincroni relativo alla richiesta corrente. |
CompleteRequest() |
In tal modo tutti gli eventi e il filtraggio presenti nella catena pipeline HTTP di esecuzione vengono ignorati da ASP.NET e l'eventoEndRequest viene eseguito direttamente. |
Dispose() |
Elimina l'istanza di HttpApplication. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetOutputCacheProviderName(HttpContext) |
Ottiene il nome del provider della cache di output predefinito configurato per un sito Web. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
GetVaryByCustomString(HttpContext, String) |
Fornisce un'implementazione a livello di applicazione della proprietà VaryByCustom. |
Init() |
Esegue il codice di inizializzazione personalizzato dopo che tutti i moduli del gestore eventi sono stati aggiunti. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnExecuteRequestStep(Action<HttpContextBase,Action>) |
Specifica un callback da richiamare quando viene eseguito un passaggio di esecuzione della richiesta. |
RegisterModule(Type) |
Registra un modulo dell'applicazione. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Eventi
AcquireRequestState |
Viene generato quando lo stato corrente, ad esempio lo stato sessione, associato alla richiesta corrente viene acquisito da ASP.NET. |
AuthenticateRequest |
Viene generato quando l'identità dell'utente è stata determinata da un modulo di sicurezza. |
AuthorizeRequest |
Viene generato quando l'autorizzazione utente è stata verificata da un modulo di sicurezza. |
BeginRequest |
Viene generato come primo evento della catena pipeline HTTP di esecuzione in risposta a una richiesta inoltrata ad ASP.NET. |
Disposed |
Si verifica quando l'applicazione viene eliminata. |
EndRequest |
Viene generato come ultimo evento della catena pipeline HTTP di esecuzione in risposta a una richiesta inoltrata ad ASP.NET. |
Error |
Viene generato quando viene generata un'eccezione non gestita. |
LogRequest |
Si verifica poco prima che ASP.NET esegua una registrazione per la richiesta corrente. |
MapRequestHandler |
Si verifica quando viene selezionato il gestore per rispondere alla richiesta. |
PostAcquireRequestState |
Viene generato quando viene acquisito lo stato della richiesta (ad esempio, lo stato sessione) associato alla richiesta corrente. |
PostAuthenticateRequest |
Viene generato quando l'identità dell'utente è stata determinata da un modulo di sicurezza. |
PostAuthorizeRequest |
Viene generato quando l'utente è stato autorizzato per la richiesta corrente. |
PostLogRequest |
Si verifica quando ASP.NET ha completato l'elaborazione di tutti i gestori eventi per l'evento LogRequest. |
PostMapRequestHandler |
Viene generato quando ASP.NET ha eseguito il mapping della richiesta corrente al gestore eventi appropriato. |
PostReleaseRequestState |
Viene generato quando ASP.NET ha completato l'esecuzione di tutti i gestori eventi della richiesta e i dati dello stato della richiesta sono stati memorizzati. |
PostRequestHandlerExecute |
Viene generato quando il gestore eventi di ASP.NET, ad esempio una pagina o un servizio Web XML, termina l'esecuzione. |
PostResolveRequestCache |
Viene generato quando ASP.NET ignora l'esecuzione del gestore eventi corrente e consente a un modulo per la memorizzazione nella cache di elaborare una richiesta dalla cache. |
PostUpdateRequestCache |
Viene generato quando ASP.NET completa l'aggiornamento dei moduli per la memorizzazione nella cache e la memorizzazione delle risposte utilizzate per elaborare le successive richieste dalla cache. |
PreRequestHandlerExecute |
Viene generato immediatamente prima dell'avvio dell'esecuzione di un gestore eventi, ad esempio una pagina o un servizio Web XML. |
PreSendRequestContent |
Viene generato immediatamente prima dell'invio del contenuto al client in ASP.NET. |
PreSendRequestHeaders |
Viene generato immediatamente prima dell'invio delle intestazioni HTTP al client in ASP.NET. |
ReleaseRequestState |
Viene generato quando ASP.NET termina l'esecuzione di tutti i gestori eventi della richiesta. Questo evento determina il salvataggio dei dati relativi allo stato corrente da parte dei moduli di stato. |
RequestCompleted |
Si verifica quando gli oggetti gestiti associati alla richiesta sono stati rilasciati. |
ResolveRequestCache |
Viene generato quando ASP.NET completa un evento autorizzazione per consentire ai moduli per la memorizzazione nella cache di elaborare le richieste dalla cache, ignorando l'esecuzione del gestore eventi, ad esempio una pagina o un servizio Web XML. |
UpdateRequestCache |
Viene generato quando ASP.NET completa l'esecuzione di un gestore eventi per consentire ai moduli per la memorizzazione nella cache di memorizzare le risposte che verranno utilizzate per elaborare le richieste successive dalla cache. |
Implementazioni dell'interfaccia esplicita
IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object) |
Avvia una chiamata asincrona al gestore eventi HTTP. |
IHttpAsyncHandler.EndProcessRequest(IAsyncResult) |
Fornisce un metodo di processo asincrono |
IHttpHandler.IsReusable |
Ottiene un valore |
IHttpHandler.ProcessRequest(HttpContext) |
Consente di attivare l'elaborazione delle richieste Web HTTP da parte di un gestore HTTP personalizzato che implementa l'interfaccia IHttpHandler. |