Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

INFO : présentation de gestionnaires HTTP et modules HTTP ASP.NET

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 307985
Résumé
Cet article fournit une introduction au HTTP ASP.NET modules et gestionnaires HTTP.

Pour des vues d'ensemble ASP.NET, reportez-vous à l'article suivant de la base de connaissances Microsoft :
305140 INFO : présentation d'ASP.NET
Plus d'informations
Modules HTTP et gestionnaires HTTP constituent une partie intégrante de l'architecture d'ASP.NET. Pendant qu'une demande est en cours de traitement, chaque demande est traité par plusieurs modules HTTP (par exemple, le module d'authentification et le module de session) et est ensuite traité par un seul gestionnaire HTTP. Une fois le gestionnaire a traité la requête, la demande de flux en via le HTTP modules.

Cet article est répartie dans les sections suivantes :

Modules sont appelées avant et après le gestionnaire d'exécution. Modules permettent aux développeurs d'intercepter, participer ou encore modifier chaque demande individuelle. Modules implémentent l'interface IHttpModule , qui se trouve dans l'espace de noms System.Web .

back to the top

Une classe HttpApplication fournit un certain nombre d'événements avec lequel les modules peuvent se synchroniser. Les événements suivants sont disponibles pour modules afin de synchroniser avec à chaque demande. Ces événements sont répertoriés dans un ordre séquentiel :
  • BeginRequest : demande a été démarré. Si vous devez faire quelque chose au début d'une demande (par exemple, afficher publication bannières en haut de chaque page), synchroniser cet événement.
  • AuthenticateRequest : si vous souhaitez intégrer votre propre schéma d'authentification personnalisée (par exemple, rechercher un utilisateur par rapport à une base de données pour valider le mot de passe), créez un module qui synchronise cet événement et authentifie l'utilisateur comment vous souhaitez.
  • AuthorizeRequest : cet événement est utilisé en interne pour implémenter les mécanismes d'autorisation (par exemple, pour stocker vos listes de contrôle l'accès (ACL) dans une base de données plutôt que dans le système de fichiers). Bien que vous pouvez remplacer cet événement, il n'existe pas de bonnes raisons pour cela.
  • ResolveRequestCache : cet événement détermine si une page peut être servie à partir la sortie cache. Si vous souhaitez écrire votre propre mise en cache module (par exemple, génération un basée sur les fichiers cache au lieu d'un cache mémoire), synchroniser cet événement pour déterminer de répondre à la page à partir du cache.
  • AcquireRequestState : état de session est extraite de la banque d'état. Si vous souhaitez créer votre propre module de gestion état, synchroniser cet événement pour récupérer l'état de session de votre banque état.
  • PreRequestHandlerExecute : cet événement se produit avant le gestionnaire HTTP est exécuté.
  • PostRequestHandlerExecute : cet événement se produit après que le gestionnaire HTTP est exécuté.
  • ReleaseRequestState : état de session est stocké revenir dans la banque d'état. Si vous créez un module d'état session personnalisé, vous devez stocker votre état de retour dans votre magasin d'état.
  • UpdateRequestCache : cet événement réécrit sortie au cache de sortie. Si vous créez un module personnalisé du cache, vous écrire la sortie en dans votre cache.
  • EndRequest : requête est terminée. Vous souhaiterez peut-être créer un module de débogage qui rassemble les informations dans la demande et puis écrit les informations sur la page.
Les événements suivants sont disponibles pour les modules afin de synchroniser avec pour chaque demande transmission. L'ordre de ces événements est non déterministe.
  • PreSendRequestHeaders : cet événement se produit avant les en-têtes sont envoyés. Si vous souhaitez ajouter des en-têtes supplémentaires, vous pouvez synchroniser cet événement à partir d'un module personnalisé.
  • PreSendRequestContent : cet événement se produit lorsque la méthode Response.Flush est appelée. Si vous souhaitez ajouter du contenu supplémentaire, vous pouvez synchroniser cet événement à partir d'un module personnalisé.
  • Erreur : cet événement se produit lorsqu'une exception non gérée se produit. Si vous souhaitez écrire un module de gestionnaire d'erreur personnalisé, synchroniser cet événement.
back to the top

Le gestionnaire de section <httpmodules> configuration est chargé de configurer les modules HTTP au sein d'une application. Il peut être déclaré à l'ordinateur, site ou au niveau de l'application. Utilisez la syntaxe suivante pour le gestionnaire de section <httpmodules> :
<httpModules>   <add type="[COM+ Class], [Assembly]" name="[ModuleName]" />   <remove type="[COM+ Class], [Assembly]" name="[ModuleName]" />   <clear /></httpModules>				
back to the top

Pour créer un module HTTP, vous devez implémenter l'interface IHttpModule . L'interface IHttpModule comporte deux méthodes avec les signatures suivantes :
void Init(HttpApplication);void Dispose();				
Pour plus d'informations sur la création de modules HTTP, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
308000 Comment faire : créer un module HTTP ASP.NET à l'aide de Visual Basic .NET
307996 Comment faire : créer un module HTTP ASP.NET à l'aide de Visual C# .NET
back to the top

Gestionnaires sont utilisés pour traiter les demandes de chaque point de terminaison. Gestionnaires d'activer l'infrastructure ASP.NET traiter chaque les URL HTTP ou groupes d'extensions D'URL dans une application. Contrairement aux modules, qu'un seul gestionnaire d'est utilisé pour traiter une requête. Tous les gestionnaires d'implémentent l'interface IHttpHandler , qui se trouve dans l'espace de noms System.Web . Gestionnaires de sont un peu analogues aux Internet Server extensions ISAPI (Application Programming Interface).

back to the top

Le gestionnaire de section <httphandlers> configuration est responsable de mappage des URL entrantes pour leclasse IHttpHandler ou IHttpHandlerFactory . Il peut être déclaré à l'ordinateur, site ou au niveau de l'application. Sous-répertoires héritent de ces paramètres.

Les administrateurs utilisent la directive de balise <add> pour configurer la section <httphandlers>. <add> directives sont interprétés et traités dans un ordre séquentiel haut-bas. Utilisez la syntaxe suivante pour le gestionnaire de section <httphandler> :
<httpHandlers>   <add verb="[verb list]" path="[path/wildcard]" type="[COM+ Class], [Assembly]" validate="[true/false]" />   <remove verb="[verb list]" path="[path/wildcard]" />   <clear /></httpHandlers>				
back to the top

Pour créer un gestionnaire HTTP, vous devez implémenter l'interface IHttpHandler . L'interface IHttpHandler possède une méthode et une propriété avec les signatures suivantes :
void ProcessRequest(HttpContext);bool IsReusable {get;}				
Remarque : si l'état de session est requis dans le gestionnaire HTTP, vous devez également implémenter l'interface IRequiresSessionState . Pour plus d'informations sur la création de gestionnaires HTTP, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
308001 Comment faire : créer un gestionnaire HTTP ASP.NET à l'aide de Visual C# .NET
Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
307997 Comment faire : créer un gestionnaire HTTP ASP.NET à l'aide de Visual Basic .NET
back to the top

Avertissement : cet article a été traduit automatiquement

Propriétés

ID d'article : 307985 - Dernière mise à jour : 02/23/2007 05:28:23 - Révision : 3.5

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbmt kbarttyperoadmap kbhttphandlers kbhttpmodule kbhttpruntime kbinfo KB307985 KbMtfr
Commentaires