2008-09-11 23 views
13

Al desarrollar (funciona bien en vivo) las páginas de nuestro sitio web no recogen el CSS correcto hasta que el usuario se haya autenticado (haya iniciado sesión).CSS no se aplica en la página ASP.NET no autenticada

Por lo tanto, los formularios de inicio de sesión y cierre de sesión se ven mal, pero una vez dentro del sitio, el CSS funciona nuevamente.

Supongo que es algún tipo de problema de autenticación? Realmente no lo he investigado demasiado porque es solo cuando se trabaja en desarrollo, por lo que no es un gran problema, pero sería bueno saber cómo solucionarlo.

Respuesta

14

Compruebe y asegúrese de que el archivo CSS en sí no se encuentre en el área que desea proteger. Puede excluir manualmente el archivo a través del web.config si es necesario.

+4

excluir manualmente añadiendo lo siguiente en la sección : JamesSugrue

+0

Esto es bueno. Entonces, ¿cómo está funcionando en su entorno de producción? Debería tener el mismo problema allí a menos que esta sección no se encuentre en su desarrollador web.config –

+0

Tengo exactamente este mismo problema: la página de inicio de sesión no tiene estilo en el desarrollo y está bien en la producción. web.config es exactamente el mismo excepto por las cadenas de conexión y la configuración de depuración. Esta solución no resolvió el problema para mí. –

3

Puede intentar utilizar una herramienta como Fiddler o HttpWatch y comprobar si realmente se aplica una solicitud para el archivo .css desde la página de inicio de sesión. Verifique que los códigos de retorno sean 200. Podría deberse a un problema de ruta relativa en su cuadro dev.

17

Para permitir que un usuario no autenticado vea sus archivos .css (o cualquier otro archivo/directorio) puede agregar un elemento de ubicación a su archivo web.config que apunta al archivo .css.

<configuration> 
    <system.web> 
     // system.web configuration settings. 
    </system.web> 
    <location path="App_Themes/Default/YourFile.css"> 
     <system.web> 
     <authorization> 
      <allow users="*"/> 
     </authorization> 
     </system.web> 
    </location> 
</configuration> 
8

Acabo de toparme con este problema yo mismo y agregar manualmente la ubicación no importó. Descubrí que había otorgado acceso a las carpetas a IIS_IUSRS, por lo que mi grupo de aplicaciones no tuvo problemas para acceder a los archivos, pero IIS estaba usando la cuenta IUSR para el acceso anónimo.

Para solucionarlo, abrí el Administrador de IIS -> IIS: Autenticación -> Seleccione 'Autenticación anónima' -> Haga clic en Acciones: editar .. (o clic derecho) -> Seleccionar 'Aplicación de identidad del grupo'

Ahora los intentos de acceso anónimo utilizan IIS_IUSRS que tienen los permisos de archivo correctos.

+0

¡Funciona para mí! Muchas gracias :) –

Cuestiones relacionadas