servidor net configurar como autenticacion asp asp.net iis-7 integrated-pipeline-mode

configurar - Autenticación ASP.NET con roles en el modo integrado IIS7 para contenido estático



configurar windows server 2012 como servidor web (2)

Estoy experimentando con el modo de autenticación integrada para contenido estático en IIS7. Seguí las instrucciones en este artículo: http://aspnet.4guysfromrolla.com/articles/122408-1.aspx Está funcionando bien si dejo / denego el acceso por estado de inicio de sesión (como en el artículo). Sin embargo, quiero permitir / denegar el acceso en función de las funciones (utilizando el ASP.NET incorporado en Roles Provider). Cuando coloco una regla de permiso para la función "Admin" en la regla web.config y deny para todos los demás usuarios, no puedo acceder a los archivos estáticos ni siquiera cuando inicio sesión como administrador. La misma carpeta contiene contenido no estático (páginas aspx) a las que se accede fácilmente según la información del proveedor de funciones.

¿Algunas ideas?


Yo diría que el culpable más probable es que ASP.NET no está procesando los archivos estáticos, sino que los deja en IIS.

¿Funciona si agrega un mapeo de script comodín?


Intente agregar lo siguiente a su bloque <system.webServer> <modules> :

<configuration> <system.webServer> <modules> <remove name="FormsAuthentication" /> <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> <remove name="UrlAuthorization" /> <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> <remove name="DefaultAuthentication" /> <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" /> <remove name="RoleManager" /> <add name="RoleManager" type="System.Web.Security.RoleManagerModule" /> </modules> </system.webServer> </configuration>

El bit de RoleManager es clave, y no está incluido en ninguno de los ejemplos en línea que pude encontrar. Sin eso, la membresía de la función del usuario no se inicializa para el contenido estático, por lo que la autorización basada en roles siempre fallará.

(Descargo de responsabilidad: He reconstruido esto por mi limitado conocimiento de IIS, pero parece que funciona).

Editar (en respuesta a su comentario): Lo siento, no sé mucho sobre cómo RoleManager depende de otros módulos. Puede ver la configuración predeterminada de IIS mirando c:/Windows/System32/inetsrv/config/applicationHost.config (al menos, eso es el pasado en mi máquina con Windows Vista) para ver el orden en que se cargan los módulos (tenga en cuenta el uso de managedHandler de forma predeterminada para restringir RoleManager a contenido no estático) y MSDN cubre RoleManagerModule junto con el resto de los módulos en el espacio de nombres System.Web.Security , por lo que probablemente pueda encontrar lo que necesita allí.