Condividi tramite


HttpApplication Classe

Definizione

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:

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    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.

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

    Viene eseguito il gestore eventi.

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

    Dopo la generazione dell'evento PostReleaseRequestState , tutti i filtri di risposta esistenti filtrano l'output.

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest.

    Questo evento è supportato in modalità integrata IIS 7.0 e almeno .NET Framework 3.0

  18. PostLogRequest

    Questo evento è supportato in modalità integrata IIS 7.0 e almeno .NET Framework 3.0

  19. EndRequest

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 End al termine del processo.

IHttpHandler.IsReusable

Ottiene un valore Boolean che indica se l'oggetto IHttpHandler può essere utilizzato da un'altra richiesta.

IHttpHandler.ProcessRequest(HttpContext)

Consente di attivare l'elaborazione delle richieste Web HTTP da parte di un gestore HTTP personalizzato che implementa l'interfaccia IHttpHandler.

Si applica a

Vedi anche