HttpApplication, classe
Assembly : System.Web (dans system.web.dll)
Les instances de la classe HttpApplication sont créées dans l'infrastructure ASP.NET et non directement par l'utilisateur. Une instance de la classe HttpApplication est utilisée pour traiter de nombreuses demandes pendant sa durée de vie ; toutefois, elle ne peut en traiter qu'une à la fois. C'est pourquoi des variables membres peuvent être utilisées pour stocker des données demande par demande.
Une application exécute des événements qui sont gérés par des modules ou un code utilisateur définis dans le fichier Global.asax dans l'ordre suivant :
-
Après l'événement PostResolveRequestCache et avant l'événement PostMapRequestHandler, un gestionnaire d'événements (une page qui correspond à l'URL de demande) est créé.
-
PostMapRequestHandler
-
Le gestionnaire d'événements est exécuté.
-
Après l'événement PostReleaseRequestState, des filtres de réponse filtrent la sortie (s'ils existent).
Les deux exemples suivants montrent comment utiliser la classe HttpApplication et ses événements. Le premier montre comment créer un module HTTP personnalisé et lui connecter un événement. Le second exemple montre comment modifier le fichier Web.config.
L'exemple de code suivant montre comment créer un module HTTP personnalisé et connecter l'événement AcquireRequestState à ce module. Les modules HTTP interceptent chaque demande envoyée aux ressources d'une application Web, vous permettant ainsi de filtrer les demandes du client. Tout module HTTP qui est abonné à un événement HttpApplication 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 "); } } }
Pour qu'un événement d'un module HTTP personnalisé puisse se produire, vous devez modifier les paramètres de configuration du fichier Web.config pour notifier ce module HTTP à ASP.NET. L'exemple de code suivant montre le paramétrage de configuration approprié dans la section httpModules du fichier Web.config.
- AspNetHostingPermission pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal.
- AspNetHostingPermission pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal.
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.