HttpApplication Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 :
-
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é.
-
Le gestionnaire d’événements est exécuté.
-
Une fois l’événement PostReleaseRequestState déclenché, tous les filtres de réponse existants filtrent la sortie.
-
Cet événement est pris en charge en mode intégré IIS 7.0 et au moins le .NET Framework 3.0
-
Cet événement est pris en charge en mode intégré IIS 7.0 et au moins le .NET Framework 3.0
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 |
| IHttpHandler.IsReusable |
Obtient une |
| IHttpHandler.ProcessRequest(HttpContext) |
Permet le traitement des requêtes Web HTTP par un gestionnaire HTTP personnalisé qui implémente l’interface IHttpHandler . |