2009-08-25 6 views
1

Nous avons un HTTPModule dont le seul but est de faire "url rewriting". Par définition d'un HTTPModule, toutes les demandes de navigateur (html, css, javascript, images, etc.) passent par les gestionnaires d'événements de cette classe.L'événement Profile_OnMigrateAnonymous déclenche plusieurs fois

Lors du processus de connexion, nous attrapons le moment où l'utilisateur passe de l'utilisateur "anonyme" à l'utilisateur "connecté" dans le gestionnaire d'événements Profile_OnMigrateAnonymous de Global.asax. Un problème que nous constatons est que lorsque l'utilisateur se connecte, l'événement Profile_OnMigrateAnonymous déclenche, semble-t-il, peut-être CHAQUE ressource dans la requête pour générer la page à l'utilisateur - à savoir le html, css, javascript, images, etc. était ma compréhension que cet événement tirera seulement une fois. Pourquoi aurait-il tiré plusieurs fois? Est-ce le résultat de notre HTTPModule "url rewriting" enregistré? Existe-t-il un moyen de configurer l'application pour ne déclencher cet événement qu'une seule fois?

Répondre

1

Pour les demandes de ressources normales (css/js/img etc.), IIS gère directement la requête. Il passe uniquement aux requêtes de l'opérateur asp_net pour les noms de fichiers spécifiques (tels que .aspx et .asmx).

Votre HTTPModule force fondamentalement IIS à transmettre toutes les demandes au processus de travail, par conséquent chaque demande déclenche le profil_OnMigrateAnonymous.

Je ne pense pas que vous pouvez contourner l'appel à Profile_OnMigrateAnonymous, mais vous pouvez implémenter un peu de code pour vérifier un nom de fichier .aspx/.ascx etc et ensuite seulement effectuer les actions réelles spécifiées.

Questions connexes