Partager via


HttpApplication Classe

Définition

Définit les méthodes, les propriétés et les événements communs à tous les objets d’application dans une application ASP.NET. Cette classe est la classe de base pour les applications définies par l’utilisateur dans le fichier 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
Héritage
HttpApplication
Implémente

Exemples

Les deux exemples suivants montrent comment utiliser la HttpApplication classe et ses événements. Le premier exemple montre comment créer un module HTTP personnalisé et y connecter un événement. Le deuxième exemple montre comment modifier le fichier Web.config.

L’exemple suivant montre comment créer un module HTTP personnalisé et connecter l’événement AcquireRequestState au module HTTP. Les modules HTTP interceptent chaque requête vers les ressources d’application web, ce qui vous permet de filtrer les demandes des clients. Tout module HTTP qui s’abonne à un HttpApplication événement doit implémenter l’interface 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

Avant qu’un événement dans un module HTTP personnalisé ne se produise, vous devez modifier les paramètres de configuration dans le fichier Web.config pour informer ASP.NET du module HTTP. L’exemple suivant montre le paramètre de configuration approprié dans la httpModules section du fichier Web.config. Le paramètre suivant s’applique au mode CLASSIQUE IIS 7.0 et aux versions antérieures d’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>  

Le paramètre suivant s’applique au mode intégré 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>  

Remarques

Les instances de la HttpApplication classe sont créées dans l’infrastructure ASP.NET, pas directement par l’utilisateur. Un instance de la HttpApplication classe est utilisé pour traiter de nombreuses demandes au cours de sa durée de vie. Toutefois, il ne peut traiter qu’une seule requête à la fois. Ainsi, les variables membres peuvent être utilisées pour stocker des données par requête.

Une application déclenche des événements qui peuvent être gérés par des modules personnalisés qui implémentent l’interface ou par le IHttpModule code de gestionnaire d’événements défini dans le fichier Global.asax. Les modules personnalisés qui implémentent l’interface IHttpModule peuvent être placés dans le dossier App_Code ou dans une DLL dans le dossier Bin.

HttpApplication est introduit dans le .NET Framework version 3.5. Pour plus d’informations, consultez Versions et dépendances.

Notes

Lors de l’exécution d’IIS 7.0 en mode intégré, les modules personnalisés du dossier App_Code ou du dossier Bin s’appliquent à toutes les requêtes dans le pipeline de requête. Le code du gestionnaire d’événements dans le fichier Global.asax s’applique uniquement aux requêtes mappées à un gestionnaire de ASP.NET.

Les événements d’application sont déclenchés dans l’ordre suivant :

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    Après l’événement PostResolveRequestCache et avant l’événement PostMapRequestHandler , un gestionnaire d’événements (qui est une page qui correspond à l’URL de la requête) est créé. Lorsqu’un serveur exécute IIS 7.0 en mode intégré et au moins le .NET Framework version 3.0, l’événement MapRequestHandler est déclenché. Lorsqu’un serveur exécute IIS 7.0 en mode Classique ou une version antérieure d’IIS, cet événement ne peut pas être géré.

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

    Le gestionnaire d’événements est exécuté.

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

    Une fois l’événement PostReleaseRequestState déclenché, tous les filtres de réponse existants filtrent la sortie.

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest.

    Cet événement est pris en charge en mode intégré IIS 7.0 et au moins dans .NET Framework 3.0

  18. PostLogRequest

    Cet événement est pris en charge en mode intégré IIS 7.0 et au moins le .NET Framework 3.0

  19. EndRequest

Constructeurs

HttpApplication()

Initialise une nouvelle instance de la classe HttpApplication.

Propriétés

Application

Obtient l'état actuel d'une application.

Context

Obtient des informations HTTP sur la requête actuelle.

Events

Obtient la liste des délégués de gestionnaires d'événements qui traitent tous les événements de l'application.

Modules

Obtient la collection de modules de l'application actuelle.

Request

Obtient l'objet de requête intrinsèque de la requête actuelle.

Response

Obtient l'objet de réponse intrinsèque de la requête actuelle.

Server

Obtient l'objet serveur intrinsèque de la requête actuelle.

Session

Obtient l'objet session intrinsèque qui fournit un accès aux données de session.

Site

Obtient ou définit une interface de site pour une implémentation IComponent.

User

Obtient l'objet utilisateur intrinsèque de la requête actuelle.

Méthodes

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement AcquireRequestState spécifié à la collection des gestionnaires d'événements AcquireRequestState asynchrones de la requête actuelle.

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement AcquireRequestState spécifié à la collection des gestionnaires d'événements AcquireRequestState asynchrones de la requête actuelle.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement AuthenticateRequest spécifié à la collection des gestionnaires d'événements AuthenticateRequest asynchrones de la requête actuelle.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement AuthenticateRequest spécifié à la collection des gestionnaires d'événements AuthenticateRequest asynchrones de la requête actuelle.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement AuthorizeRequest spécifié à la collection des gestionnaires d'événements AuthorizeRequest asynchrones de la requête actuelle.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement AuthorizeRequest spécifié à la collection des gestionnaires d'événements AuthorizeRequest asynchrones de la requête actuelle.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement BeginRequest spécifié à la collection des gestionnaires d'événements BeginRequest asynchrones de la requête actuelle.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement BeginRequest spécifié à la collection des gestionnaires d'événements BeginRequest asynchrones de la requête actuelle.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement EndRequest spécifié à la collection des gestionnaires d'événements EndRequest asynchrones de la requête actuelle.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement EndRequest spécifié à la collection des gestionnaires d'événements EndRequest asynchrones de la requête actuelle.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement LogRequest spécifié à la collection des gestionnaires d'événements LogRequest asynchrones de la requête actuelle.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement LogRequest spécifié à la collection des gestionnaires d'événements LogRequest asynchrones de la requête actuelle.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement MapRequestHandler spécifié à la collection des gestionnaires d'événements MapRequestHandler asynchrones de la requête actuelle.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement MapRequestHandler spécifié à la collection des gestionnaires d'événements MapRequestHandler asynchrones de la requête actuelle.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PostAcquireRequestState spécifié à la collection des gestionnaires d'événements PostAcquireRequestState asynchrones de la requête actuelle.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement PostAcquireRequestState spécifié à la collection des gestionnaires d'événements PostAcquireRequestState asynchrones de la requête actuelle.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PostAuthenticateRequest spécifié à la collection des gestionnaires d'événements PostAuthenticateRequest asynchrones de la requête actuelle.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement PostAuthorizeRequest spécifié à la collection des gestionnaires d'événements PostAuthorizeRequest asynchrones de la requête actuelle.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PostAuthorizeRequest spécifié à la collection des gestionnaires d'événements PostAuthorizeRequest asynchrones de la requête actuelle.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute le PostAuthorizeRequest spécifié à la collection des gestionnaires d'événements PostAuthorizeRequest asynchrones de la requête actuelle.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PostLogRequest spécifié à la collection des gestionnaires d'événements PostLogRequest asynchrones de la requête actuelle.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement PostLogRequest spécifié à la collection des gestionnaires d'événements PostLogRequest asynchrones de la requête actuelle.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PostMapRequestHandler spécifié à la collection des gestionnaires d'événements PostMapRequestHandler asynchrones de la requête actuelle.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement PostMapRequestHandler spécifié à la collection des gestionnaires d'événements PostMapRequestHandler asynchrones de la requête actuelle.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PostReleaseRequestState spécifié à la collection des gestionnaires d'événements PostReleaseRequestState asynchrones de la requête actuelle.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement PostReleaseRequestState spécifié à la collection des gestionnaires d'événements PostReleaseRequestState asynchrones de la requête actuelle.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PostRequestHandlerExecute spécifié à la collection des gestionnaires d'événements PostRequestHandlerExecute asynchrones de la requête actuelle.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement PostRequestHandlerExecute spécifié à la collection des gestionnaires d'événements PostRequestHandlerExecute asynchrones de la requête actuelle.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PostResolveRequestCache spécifié à la collection des gestionnaires d'événements PostResolveRequestCache asynchrones de la requête actuelle.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement PostResolveRequestCache spécifié à la collection des gestionnaires d'événements PostResolveRequestCache asynchrones de la requête actuelle.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PostUpdateRequestCache spécifié à la collection des gestionnaires d'événements PostUpdateRequestCache asynchrones de la requête actuelle.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement PostUpdateRequestCache spécifié à la collection des gestionnaires d'événements PostUpdateRequestCache asynchrones de la requête actuelle.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement PreRequestHandlerExecute spécifié à la collection des gestionnaires d'événements PreRequestHandlerExecute asynchrones de la requête actuelle.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement PreRequestHandlerExecute spécifié à la collection des gestionnaires d'événements PreRequestHandlerExecute asynchrones de la requête actuelle.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement ReleaseRequestState spécifié à la collection des gestionnaires d'événements ReleaseRequestState asynchrones de la requête actuelle.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement ReleaseRequestState spécifié à la collection des gestionnaires d'événements ReleaseRequestState asynchrones de la requête actuelle.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Ajoute le gestionnaire d'événements ResolveRequestCache spécifié à la collection des gestionnaires d'événements ResolveRequestCache asynchrones de la requête actuelle.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute le gestionnaire d'événements ResolveRequestCache spécifié à la collection des gestionnaires d'événements ResolveRequestCache asynchrones de la requête actuelle.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Ajoute l'événement UpdateRequestCache spécifié à la collection des gestionnaires d'événements UpdateRequestCache asynchrones de la requête actuelle.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute l'événement UpdateRequestCache spécifié à la collection des gestionnaires d'événements UpdateRequestCache asynchrones de la requête actuelle.

CompleteRequest()

Fait que ASP.NET ignore tous les événements et le filtrage de la chaîne d'exécution du pipeline HTTP et exécute directement l'événement EndRequest.

Dispose()

Supprime l'instance de HttpApplication.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetOutputCacheProviderName(HttpContext)

Obtient le nom du fournisseur de caches de sortie par défaut configuré pour un site Web.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
GetVaryByCustomString(HttpContext, String)

Fournit une implémentation à l'échelle de l'application de la propriété VaryByCustom.

Init()

Exécute un code d'initialisation personnalisé lorsque tous les modules du gestionnaire d'événements ont été ajoutés.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnExecuteRequestStep(Action<HttpContextBase,Action>)

Spécifie un rappel à effectuer quand une étape d’exécution de requête est exécutée.

RegisterModule(Type)

Inscrit un module d'application.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Événements

AcquireRequestState

Se produit lorsque ASP.NET acquiert l'état actuel (par exemple, l'état de session) associé à la requête actuelle.

AuthenticateRequest

Se produit lorsqu'un module de sécurité a établi l'identité de l'utilisateur.

AuthorizeRequest

Se produit lorsqu'un module de sécurité a vérifié les autorisations de l'utilisateur.

BeginRequest

Se produit en tant que premier événement dans la chaîne d'exécution du pipeline HTTP lorsque ASP.NET répond à une requête.

Disposed

Se produit lorsque l'application est supprimée.

EndRequest

Se produit en tant que dernier événement de la chaîne d'exécution du pipeline HTTP lorsque ASP.NET répond à une requête.

Error

Se produit lorsqu'une exception non gérée est levée.

LogRequest

Se produit juste avant qu'ASP.NET exécute tout enregistrement pour la requête actuelle.

MapRequestHandler

Se produit lorsque le gestionnaire est sélectionné pour répondre à la requête.

PostAcquireRequestState

Se produit lorsque l'état de la requête (par exemple, l'état de session) associé à la requête actuelle a été obtenu.

PostAuthenticateRequest

Se produit lorsqu'un module de sécurité a établi l'identité de l'utilisateur.

PostAuthorizeRequest

Se produit lorsque l'utilisateur pour la requête actuelle a été autorisé.

PostLogRequest

Se produit lorsque ASP.NET a complété le traitement de tous les gestionnaires d'événements pour l'événement LogRequest.

PostMapRequestHandler

Se produit lorsque ASP.NET a mappé la requête actuelle sur le gestionnaire d'événements approprié.

PostReleaseRequestState

Se produit lorsque ASP.NET a terminé l'exécution de tous les gestionnaires d'événements de requête et lorsque les données d'état de requête ont été stockées.

PostRequestHandlerExecute

Se produit lorsque le gestionnaire d'événements ASP.NET (par exemple, une page ou un service Web XML) termine son exécution.

PostResolveRequestCache

Se produit lorsque ASP.NET ignore l'exécution du gestionnaire d'événements actuel et autorise un module de mise en cache à répondre à une requête depuis le cache.

PostUpdateRequestCache

Se produit lorsque ASP.NET a terminé la mise à jour des modules de mise en cache et le stockage des réponses utilisées pour répondre à des requêtes ultérieures depuis le cache.

PreRequestHandlerExecute

Se produit juste avant que ASP.NET ne commence à exécuter un gestionnaire d'événements (par exemple, une page ou un service Web XML).

PreSendRequestContent

Se produit juste avant que ASP.NET n'envoie du contenu au client.

PreSendRequestHeaders

Se produit juste avant que ASP.NET n'envoie des en-têtes HTTP au client.

ReleaseRequestState

Se produit après que ASP.NET a terminé d'exécuter tous les gestionnaires d'événements de requête. Cet événement entraîne un enregistrement des données sur l'état actuel par les modules d'état.

RequestCompleted

Se produit lorsque les objets managés associés à la demande ont été libérés.

ResolveRequestCache

Se produit lorsque ASP.NET termine un événement d'autorisation pour permettre aux modules de mise en cache de répondre à des requêtes à partir du cache, ignorant l'exécution du gestionnaire d'événements (par exemple, une page ou un service Web XML).

UpdateRequestCache

Se produit lorsque ASP.NET finit d'exécuter un gestionnaire d'événements pour permettre aux modules de mise en cache de stocker des réponses qui seront utilisées pour répondre à des requêtes ultérieures à partir du cache.

Implémentations d’interfaces explicites

IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

Lance un appel asynchrone au gestionnaire d'événements HTTP.

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

Fournit une méthode End de processus asynchrone lorsque le processus se termine.

IHttpHandler.IsReusable

Obtient une valeur Boolean indiquant si une autre requête peut utiliser l'objet IHttpHandler.

IHttpHandler.ProcessRequest(HttpContext)

Active le traitement des requêtes Web HTTP par le biais d'un gestionnaire HTTP personnalisé qui implémente l'interface IHttpHandler.

S’applique à

Voir aussi