Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 51405|Répondre: 5

[ASP.NET] asp.net interface IHttpModule est expliquée en détail

[Copié le lien]
Publié sur 13/03/2018 21:46:06 | | | |
Écrit devant

Concernant le contenu pertinent d’IHttpModule, on m’a aussi demandé lors de l’entretien, et j’ai vaguement eu l’impression que cette interface possède une méthode Init, qui peut enregistrer une série d’événements avec la méthode Init dans la classe d’implémentation. À la maison ce week-end, il n’y a vraiment rien à faire, même si c’est pour vérifier et combler les lacunes dans cette connaissance.

Fonctionne le module IHttpModule

Les amis qui connaissent asp.net cycle de vie doivent savoir que l’exécution de HttpModule s’exécute avant HttpHandler, puis après avoir exécuté une série d’événements de HttpModule, puis exécuté HttpHandler, puis exécuté certains événements de HttpModule. Pour plus de détails, veuillez consulter le schéma du cycle de vie suivant.



L’HttpHandler est l’endroit où il faut gérer la requête http, le HttpModule est la « seule façon » pour une requête HTTP, donc vous pouvez ajouter certaines informations requises en plus des données HTTP avant que cette requête HTTP ne soit transmise au véritable centre de traitement des requêtes (HttpHandler), ou effectuer un travail supplémentaire sur les informations interceptées de la requête HTTP. Ou, dans certains cas, simplement terminer les requêtes HTTP qui remplissent certaines conditions, ce qui peut servir de filtre.

Une requête HTTP sera transmise au conteneur HttpHandler à un moment donné (événement ResolveRequestCache) lors de la livraison du conteneur HttpModule. Après cet événement, le conteneur HttpModule crée une instance d’entrée du HttpHandler, mais au lieu de céder le contrôle de la requête HTTP, il continue de lancer les événements AcquireRequestState et PreRequestHandlerExcute. Après l’événement PreRequestHandlerExcute, la fenêtre HttpModule donne temporairement le contrôle au conteneur HttpHandler pour le traitement réel des requêtes HTTP.

À l’intérieur du conteneur HttpHandler, la méthode ProcessRequest est exécutée pour traiter les requêtes HTTP. Après que le HttpHandler du conteneur ait traité l’ensemble de la requête HTTP, il renvoie le contrôle au HttpModule, qui continue de transmettre l’information de la requête HTTP traitée couche par couche jusqu’à ce qu’elle soit renvoyée au client.

Un cas

Structure du projet



Code MyHttpModule

Enregistrer un HttpModule personnalisé dans web.config

Parcourir la page Default.aspx



Alors, quel est l’ordre d’exécution d’une série d’événements dans le cycle de vie ?


Parcourez les résultats



Utilisez HttpModule pour terminer la requête Http


résultat



résumé

Nous introduisons ici l’interface la plus importante du cycle de vie asp.net, l’IHttpModule, qui peut être décrite comme une interface d’événements, car dans la méthode Init de la classe d’implémentation, divers événements du cycle de vie peuvent être enregistrés, et différentes logiques peuvent être définies dans l’événement.





Précédent:Asp.Net IHttpHandler introduit
Prochain:C# doit modifier cette solution de contournement de l’en-tête avec les attributs ou méthodes appropriés
 Propriétaire| Publié sur 13/03/2018 21:46:47 |
. NETFramework 4.5 propose 25 événements standards.


 Propriétaire| Publié sur 13/03/2018 21:47:03 |
. NETFramework 4.0, qui propose 19 événements standards.

1. CommenceRequête : Le premier événement de asp.net à commencer le traitement de la requête, indiquant le début du traitement.

2. AuthenticateRequest : Demande d’authentification, généralement utilisée pour obtenir les informations utilisateur de la requête.

3. PostAuthenticateRequest : Les informations utilisateur qui ont été demandées.

4. AuthorizeRequest : Authorization, généralement utilisée pour vérifier si la demande de l’utilisateur a obtenu l’autorisation.

5. PostAuthorizeRequest : La demande utilisateur a été autorisée.

6. Résoudre le cache de la requête : Obtenir les résultats de traitement du cache précédent ; s’il a déjà été mis en cache, il n’est pas nécessaire de traiter la requête et de retourner directement les résultats mis en cache.

7. PostResolveRequestCache : Le cache a été traité.

8. PostMapRequestHandler : L’objet processeur demandé a été créé sur la base de la demande de l’utilisateur.

9. AcquireRequestState : Obtenir le statut de la requête, généralement utilisée pour la session

10. PostAcquireRequestState : La session a été obtenue

11. Gestionnaire de PréDemandeExécution : Préparer le gestionnaire d’exécution.

12. PostRequestHandlerExecute : Le gestionnaire a été exécuté

13. DemandeDeLibérationÉtat : État de la demande de libération.

14. PostReleaseRequestÉtat : Le statut de la demande a été communiqué.

15. Mise à jourCacheRequestCache : Mettre à jour le cache.

16. PostUpdateRequestCache : Le cache a été mis à jour.

17. LogRequest : L’opération de journal demandée

18. PostLogRequest : L’opération de journal de la requête est terminée.

19. FinDeDemande : La demande est traitée.
Publié sur 22/04/2019 09:48:33 |
Mettez-le en favori
Publié sur 30/09/2021 19:19:09 |
J’étudie récemment. Lisez-le attentivement
 Propriétaire| Publié sur 14/07/2023 20:26:36 |
ASP.NET MVC compte les requêtes en fonction des modules IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com