El núcleo del motor IIS utiliza condiciones previas para determinar cuándo habilitar un módulo particular. Los motivos de rendimiento, por ejemplo, pueden determinar que solo desee ejecutar módulos administrados para solicitudes que también van a un manejador gestionado. La condición previa en el siguiente ejemplo (precondition="managedHandler"
) sólo permite a las formas módulo de autenticación para las peticiones que también son manejados por un controlador administrado, tales como solicitudes de .aspx o archivos .asmx:
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
Si quita el atributo precondition="managedHandler"
La Autenticación de formularios también se aplica al contenido que no es atendido por manejadores administrados, como .html, .jpg, .doc, sino también para las extensiones ASP (.asp) o PHP (.php). Consulte "How to Take Advantage of IIS Integrated Pipeline" para ver un ejemplo de cómo habilitar módulos ASP.NET para que se ejecuten para todo el contenido.
También puede usar un acceso directo para permitir que todos los módulos administrados (ASP.NET) se ejecuten para todas las solicitudes en su aplicación, independientemente de la condición previa "managedHandler
".
para que todos los módulos administrados para funcionar para todas las solicitudes sin tener que configurar cada entrada del módulo para quitar el "managedHandler
" condición previa, utilice la propiedad runAllManagedModulesForAllRequests
en la sección <modules>
:
<modules runAllManagedModulesForAllRequests="true" />
Cuando se utiliza esta propiedad , la condición previa "managedHandler
" no tiene ningún efecto y todos los módulos administrados se ejecutan para todas las solicitudes.
es bueno para ejecutar todos los modelos para toda la solicitud o seré más específico por allí. ¿Afecta esto la velocidad de la aplicación? –
Sí, habrá un problema de rendimiento. Deberías usar precondición en su lugar. –
, entonces, ¿cómo debo decidir qué módulo debo usar y cuál no? –