HttpApplication Classe

Definizione

Definisce i metodi, le proprietà e gli eventi comuni a tutti gli oggetti applicazione in un'applicazione ASP.NET. Questa classe è la classe di 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. Il secondo esempio illustra 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 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 classe HttpApplication vengono create nell'infrastruttura ASP.NET, non direttamente dall'utente. Un'istanza della HttpApplication classe viene usata per elaborare molte richieste nella sua 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.

Note

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 (che corrisponde 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 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

Nome Descrizione
HttpApplication()

Inizializza una nuova istanza della classe HttpApplication.

Proprietà

Nome Descrizione
Application

Ottiene lo stato corrente di un'applicazione.

Context

Ottiene informazioni specifiche http sulla richiesta corrente.

Events

Ottiene l'elenco dei delegati del gestore eventi che elaborano tutti gli eventi dell'applicazione.

Modules

Ottiene la raccolta di moduli per l'applicazione corrente.

Request

Ottiene l'oggetto richiesta intrinseca per la 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 l'accesso ai dati della sessione.

Site

Ottiene o imposta un'interfaccia del sito per un'implementazione IComponent .

User

Ottiene l'oggetto utente intrinseco per la richiesta corrente.

Metodi

Nome Descrizione
AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato AcquireRequestState alla raccolta di gestori eventi asincroni AcquireRequestState per la richiesta corrente.

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato AcquireRequestState alla raccolta di gestori eventi asincroni AcquireRequestState per la richiesta corrente.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato AuthenticateRequest alla raccolta di gestori eventi asincroni AuthenticateRequest per la richiesta corrente.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato AuthenticateRequest alla raccolta di gestori eventi asincroni AuthenticateRequest per la richiesta corrente.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato AuthorizeRequest alla raccolta di gestori eventi asincroni AuthorizeRequest per la richiesta corrente.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato AuthorizeRequest alla raccolta di gestori eventi asincroni AuthorizeRequest per la richiesta corrente.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato BeginRequest alla raccolta di gestori eventi asincroni BeginRequest per la richiesta corrente.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato BeginRequest alla raccolta di gestori eventi asincroni BeginRequest per la richiesta corrente.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato EndRequest alla raccolta di gestori eventi asincroni EndRequest per la richiesta corrente.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato EndRequest alla raccolta di gestori eventi asincroni EndRequest per la richiesta corrente.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato LogRequest alla raccolta di gestori eventi asincroni LogRequest per la richiesta corrente.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato LogRequest alla raccolta di gestori eventi asincroni LogRequest per la richiesta corrente.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato MapRequestHandler alla raccolta di gestori eventi asincroni MapRequestHandler per la richiesta corrente.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato MapRequestHandler alla raccolta di gestori eventi asincroni MapRequestHandler per la richiesta corrente.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato PostAcquireRequestState alla raccolta di gestori eventi asincroni PostAcquireRequestState per la richiesta corrente.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PostAcquireRequestState alla raccolta di gestori eventi asincroni PostAcquireRequestState per la richiesta corrente.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato PostAuthorizeRequest alla raccolta di gestori eventi asincroni PostAuthorizeRequest per la richiesta corrente.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PostAuthenticateRequest alla raccolta di gestori eventi asincroni PostAuthenticateRequest per la richiesta corrente.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'oggetto specificato PostAuthorizeRequest alla raccolta di gestori eventi asincroni PostAuthorizeRequest per la richiesta corrente.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PostAuthorizeRequest alla raccolta di gestori eventi asincroni PostAuthorizeRequest per la richiesta corrente.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato PostLogRequest alla raccolta di gestori eventi asincroni PostLogRequest per la richiesta corrente.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PostLogRequest alla raccolta di gestori eventi asincroni PostLogRequest per la richiesta corrente.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato PostMapRequestHandler alla raccolta di gestori eventi asincroni PostMapRequestHandler per la richiesta corrente.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PostMapRequestHandler alla raccolta di gestori eventi asincroni PostMapRequestHandler per la richiesta corrente.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato PostReleaseRequestState alla raccolta di gestori eventi asincroni PostReleaseRequestState per la richiesta corrente.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PostReleaseRequestState alla raccolta di gestori eventi asincroni PostReleaseRequestState per la richiesta corrente.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato PostRequestHandlerExecute alla raccolta di gestori eventi asincroni PostRequestHandlerExecute per la richiesta corrente.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PostRequestHandlerExecute alla raccolta di gestori eventi asincroni PostRequestHandlerExecute per la richiesta corrente.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato PostResolveRequestCache alla raccolta di gestori eventi asincroni PostResolveRequestCache per la richiesta corrente.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PostResolveRequestCache alla raccolta di gestori eventi asincroni PostResolveRequestCache per la richiesta corrente.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato PostUpdateRequestCache alla raccolta di gestori eventi asincroni PostUpdateRequestCache per la richiesta corrente.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PostUpdateRequestCache alla raccolta di gestori eventi asincroni PostUpdateRequestCache per la richiesta corrente.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato PreRequestHandlerExecute alla raccolta di gestori eventi asincroni PreRequestHandlerExecute per la richiesta corrente.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato PreRequestHandlerExecute alla raccolta di gestori eventi asincroni PreRequestHandlerExecute per la richiesta corrente.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato ReleaseRequestState alla raccolta di gestori eventi asincroni ReleaseRequestState per la richiesta corrente.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato ReleaseRequestState alla raccolta di gestori eventi asincroni ReleaseRequestState per la richiesta corrente.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge il gestore eventi specificato ResolveRequestCache alla raccolta di gestori eventi asincroni ResolveRequestCache per la richiesta corrente.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Aggiunge il gestore eventi specificato ResolveRequestCache alla raccolta di gestori eventi asincroni ResolveRequestCache per la richiesta corrente.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Aggiunge l'evento specificato UpdateRequestCache alla raccolta di gestori eventi asincroni UpdateRequestCache per la richiesta corrente.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Aggiunge l'evento specificato UpdateRequestCache alla raccolta di gestori eventi asincroni UpdateRequestCache per la richiesta corrente.

CompleteRequest()

Fa sì che ASP.NET ignorare tutti gli eventi e il filtro nella catena di esecuzione della pipeline HTTP ed eseguire direttamente l'evento EndRequest.

Dispose()

Elimina l'istanza HttpApplication di .

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 di cache di output predefinito configurato per un sito Web.

GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
GetVaryByCustomString(HttpContext, String)

Fornisce un'implementazione a livello di applicazione della VaryByCustom proprietà .

Init()

Esegue il codice di inizializzazione personalizzato dopo l'aggiunta di tutti i moduli del gestore eventi.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(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

Nome Descrizione
AcquireRequestState

Si verifica quando ASP.NET acquisisce lo stato corrente, ad esempio lo stato della sessione, associato alla richiesta corrente.

AuthenticateRequest

Si verifica quando un modulo di sicurezza ha stabilito l'identità dell'utente.

AuthorizeRequest

Si verifica quando un modulo di sicurezza ha verificato l'autorizzazione utente.

BeginRequest

Si verifica come primo evento nella catena di esecuzione della pipeline HTTP quando ASP.NET risponde a una richiesta.

Disposed

Si verifica quando l'applicazione viene eliminata.

EndRequest

Si verifica come ultimo evento nella catena di esecuzione della pipeline HTTP quando ASP.NET risponde a una richiesta.

Error

Si verifica quando viene generata un'eccezione non gestita.

LogRequest

Si verifica poco prima che ASP.NET esegua qualsiasi registrazione per la richiesta corrente.

MapRequestHandler

Si verifica quando il gestore è selezionato per rispondere alla richiesta.

PostAcquireRequestState

Si verifica quando è stato ottenuto lo stato della richiesta, ad esempio lo stato della sessione, associato alla richiesta corrente.

PostAuthenticateRequest

Si verifica quando un modulo di sicurezza ha stabilito l'identità dell'utente.

PostAuthorizeRequest

Si verifica quando l'utente per la richiesta corrente è stato autorizzato.

PostLogRequest

Si verifica quando ASP.NET ha completato l'elaborazione di tutti i gestori eventi per l'evento LogRequest.

PostMapRequestHandler

Si verifica quando ASP.NET ha mappato la richiesta corrente al gestore eventi appropriato.

PostReleaseRequestState

Si verifica quando ASP.NET ha completato l'esecuzione di tutti i gestori eventi di richiesta e i dati sullo stato della richiesta sono stati archiviati.

PostRequestHandlerExecute

Si verifica quando il gestore eventi ASP.NET (ad esempio, una pagina o un servizio Web XML) termina l'esecuzione.

PostResolveRequestCache

Si verifica quando ASP.NET ignora l'esecuzione del gestore eventi corrente e consente a un modulo di memorizzazione nella cache di gestire una richiesta dalla cache.

PostUpdateRequestCache

Si verifica quando ASP.NET termina l'aggiornamento dei moduli di memorizzazione nella cache e l'archiviazione di risposte usate per gestire le richieste successive dalla cache.

PreRequestHandlerExecute

Si verifica poco prima che ASP.NET avvii l'esecuzione di un gestore eventi, ad esempio una pagina o un servizio Web XML.

PreSendRequestContent

Si verifica poco prima che ASP.NET invii contenuto al client.

PreSendRequestHeaders

Si verifica poco prima che ASP.NET invii le intestazioni HTTP al client.

ReleaseRequestState

Si verifica al termine dell'esecuzione di tutti i gestori eventi di richiesta ASP.NET. Questo evento fa sì che i moduli di stato salvino i dati di stato correnti.

RequestCompleted

Si verifica quando gli oggetti gestiti associati alla richiesta sono stati rilasciati.

ResolveRequestCache

Si verifica quando ASP.NET termina un evento di autorizzazione per consentire ai moduli di memorizzazione nella cache di gestire le richieste dalla cache, ignorando l'esecuzione del gestore eventi , ad esempio una pagina o un servizio Web XML.

UpdateRequestCache

Si verifica quando ASP.NET termina l'esecuzione di un gestore eventi per consentire ai moduli di memorizzazione nella cache le risposte che verranno usate per gestire le richieste successive dalla cache.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

Avvia una chiamata asincrona al gestore eventi HTTP.

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

Fornisce un metodo di processo End asincrono al termine del processo.

IHttpHandler.IsReusable

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

IHttpHandler.ProcessRequest(HttpContext)

Abilita l'elaborazione delle richieste Web HTTP da un gestore HTTP personalizzato che implementa l'interfaccia IHttpHandler .

Si applica a

Vedi anche