Le moteur principal IIS utilise des conditions préalables pour déterminer quand activer un module particulier. Des raisons de performances, par exemple, peuvent déterminer que vous souhaitez uniquement exécuter des modules gérés pour les demandes qui vont également à un gestionnaire géré. La condition préalable dans l'exemple suivant ( precondition="managedHandler"
) active uniquement le module d'authentification par formulaires pour les demandes qui sont également gérées par un gestionnaire géré, telles que les demandes aux fichiers .aspx ou .asmx:
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
Si vous supprimez l'attribut precondition="managedHandler"
, l'authentification par formulaire s'applique également au contenu qui n'est pas servi par des gestionnaires gérés, tels que .html, .jpg, .doc, mais également pour les extensions ASP (.asp) ou PHP (.php) classiques. Consultez « Comment tirer parti du pipeline intégré IIS » pour un exemple d'activation des modules ASP.NET pour s'exécuter pour tout le contenu.
Vous pouvez également utiliser un raccourci pour permettre à tous les modules gérés (ASP.NET) de s'exécuter pour toutes les demandes de votre application, quelle que soit la managedHandler
condition préalable " ".
Pour permettre à tous les modules gérés de s'exécuter pour toutes les requêtes sans configurer chaque entrée de module pour supprimer la managedHandler
condition préalable " ", utilisez la runAllManagedModulesForAllRequests
propriété dans la <modules>
section:
<modules runAllManagedModulesForAllRequests="true" />
Lorsque vous utilisez cette propriété, la managedHandler
condition préalable " " n'a aucun effet et tous les modules gérés s'exécutent pour toutes les demandes.
<modules runAllManagedModulesForAllRequests="true">
. Mais je vois maintenant que cela pourrait créer des frais généraux. Alors, y a-t-il un module spécifique responsable que je peux activer pour obtenir le point "." dans MVC WebAPI Url, au lieu de les activer tous avec<modules runAllManagedModulesForAllRequests="true">
? S'agit-il par exemple du module "UrlAuthorization"?ajoutez le code ci-dessous dans web.config
la source