type mimemap asp.net iis-7 web-config iis-6 static-content

asp.net - mimemap - Incendiar eventos para solicitudes de contenido estático sin establecer runAllManagedModulesForAllRequests en true



mime type json web config (1)

Estoy buscando una solución más precisa para manejar las solicitudes de contenido estático por el ciclo de vida ASP.NET sin establecer runAllManagedModulesForAllRequests en verdadero. Hasta donde sé, el efecto de runAllManagedModulesForAllRequests = "true" que el atributo de condición previa de cada módulo se establecerá en "" .

El problema:

  • Tengo que proteger el contenido estático en una subcarpeta de una aplicación web contra el acceso no autorizado
  • Para incluir solicitudes a esos contenidos estáticos en el ciclo de vida de ASP.NET y, por lo tanto, haber disparado algunos eventos, establezco runAllManagedModulesForAllRequests en true en web.config.
  • Debido a que esta solución convierte la gran rueda y todos los módulos administrados se ven afectados por la aplicación completa, estoy buscando una solución más adaptada restringida a la subcarpeta donde se requiere este comportamiento.
  • Necesito una solución para IIS6 y II7

Pregunta 1:

La precondición de los módulos que deben restablecerse ( precondition = "" ) para activar eventos global.asax.cs (por ejemplo, Application_BeginRequest ) para solicitudes de contenido estático.

Pregunta 2:

¿Es posible limitar el manejo de esta solicitud a las solicitudes a una sola subcarpeta (por ejemplo, tal vez colocando un web.config adaptado en esta subcarpeta, pellizcando el web.config principal, ...)

Cualquier sugerencia sera apreciada. Gracias.


¿Ha pensado en registrar un HttpModule personalizado para el evento correcto de global.asax, y luego habilitar el HttpModule solo para el subdirectorio utilizando el atributo de location en el web.config principal? Es solo una idea de una posible solución. No lo he pensado bien.

<location path="subDirectoryPath"> <system.web> <httpmodules> <add type="MyCustomModule.Name" name="MyCustomModule" /> </httpmodules> </system.web> </location>

EDITAR:

Puede que tenga que anular su web.config, y traer toda la sección httpModule en esto, y luego insertar el módulo personalizado en el lugar correcto, con la condición previa correcta. Esto es para evitar establecer runAllManagedModulesForAllRequests en true