HttpApplication Classe

Définition

Définit les méthodes, propriétés et événements communs à tous les objets d’application d’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 clientes. 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é puisse se produire, vous devez modifier les paramètres de configuration dans le fichier Web.config pour notifier ASP.NET sur le 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 classe HttpApplication sont créées dans l’infrastructure ASP.NET, et non par l’utilisateur directement. Une instance de la HttpApplication classe est utilisée pour traiter de nombreuses requêtes dans sa durée de vie. Toutefois, il ne peut traiter qu’une seule requête à la fois. Par conséquent, 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 IHttpModule ou par le code du 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 .NET Framework version 3.5. Pour plus d’informations, consultez Versions et dépendances.

Note

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 du 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 qu’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 le .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

Nom Description
HttpApplication()

Initialise une nouvelle instance de la classe HttpApplication.

Propriétés

Nom Description
Application

Obtient l’état actuel d’une application.

Context

Obtient des informations spécifiques à HTTP sur la requête actuelle.

Events

Obtient la liste des délégués du gestionnaire d’événements qui traitent tous les événements d’application.

Modules

Obtient la collection de modules pour 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 pour la requête actuelle.

Server

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

Session

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

Site

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

User

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

Méthodes

Nom Description
AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Ajoute la valeur spécifiée PostAuthorizeRequest à la collection de gestionnaires d’événements asynchrones PostAuthorizeRequest pour la requête actuelle.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

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

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

CompleteRequest()

Provoque ASP.NET contourner tous les événements et le filtrage dans la chaîne de pipeline HTTP d’exécution et exécuter directement l’événement EndRequest.

Dispose()

Supprime l’instance HttpApplication .

Equals(Object)

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

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

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

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

GetType()

Obtient la Type de l’instance actuelle.

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

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

Init()

Exécute le code d’initialisation personnalisé une fois que tous les modules de gestionnaire d’événements ont été ajoutés.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

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

Spécifie un rappel à appeler lorsqu’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

Nom Description
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é l’autorisation utilisateur.

BeginRequest

Se produit comme premier événement dans la chaîne de pipeline HTTP d’exécution lorsque ASP.NET répond à une demande.

Disposed

Se produit lorsque l’application est supprimée.

EndRequest

Se produit comme dernier événement dans la chaîne de pipeline HTTP d’exécution 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 que ASP.NET effectue une journalisation pour la requête actuelle.

MapRequestHandler

Se produit lorsque le gestionnaire est sélectionné pour répondre à la demande.

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 demande actuelle a été autorisé.

PostLogRequest

Se produit lorsque ASP.NET a terminé 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 au 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 que les données d’état de la 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 l’exécution.

PostResolveRequestCache

Se produit lorsque ASP.NET contourne l’exécution du gestionnaire d’événements actuel et permet à un module de mise en cache de traiter une requête à partir du cache.

PostUpdateRequestCache

Se produit lorsque ASP.NET termine la mise à jour des modules de mise en cache et le stockage des réponses utilisées pour traiter les requêtes suivantes à partir du cache.

PreRequestHandlerExecute

Se produit juste avant que ASP.NET 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 envoie du contenu au client.

PreSendRequestHeaders

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

ReleaseRequestState

Se produit une fois que ASP.NET a terminé l’exécution de tous les gestionnaires d’événements de requête. Cet événement entraîne l’enregistrement des modules d’état dans les données d’état actuelles.

RequestCompleted

Se produit lorsque les objets managés associés à la requête 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 traiter les demandes à partir du cache, en contournant l’exécution du gestionnaire d’événements (par exemple, une page ou un service web XML).

UpdateRequestCache

Se produit lorsque ASP.NET termine l’exécution d’un gestionnaire d’événements afin de permettre aux modules de mise en cache de stocker les réponses qui seront utilisées pour traiter les requêtes suivantes à partir du cache.

Implémentations d’interfaces explicites

Nom Description
IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

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

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

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

IHttpHandler.IsReusable

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

IHttpHandler.ProcessRequest(HttpContext)

Permet le traitement des requêtes Web HTTP par un gestionnaire HTTP personnalisé qui implémente l’interface IHttpHandler .

S’applique à

Voir aussi