Come mai a volte visualizzando il website con VS2005 la pagina di login mi appare senza decorazioni e non si vedono le immagini? Partiamo dal presupposto che il "Default Web Server" di VS2005 mappa tutte le estensioni su aspnet. Sebbene la cosa permette di realizzare interessanti mappature di estensione in fase di sviluppo ci potrebbe essere problemi in fase di deploy se IIS non è in gestione diretta. A volte il "Default Web Server" riserva spiacevoli inconvenienti ;-p
Facciamo questo esempio:
- Preparate una foglio di stile "~/Sample.css"
- Preparate una pagina ".aspx" a cui applicare il css del punto uno e salvate nel root del website
- Verificate che il foglio di stile sia correttamente applicato facendo partire l'applicazione
- Configurare "authentication" del web site impostando mode="Forms" e indicando la pagina del punto (2) come "loginUrl" del "form"
- Configurare "authorization" in modo da negare l'accesso a tutti utenti anonimi (deny users="?")
La conseguenza che si vuole avere con il punto (5) è che l'unica pagina che gli utenti non authenticati possono vedere è la pagina creata nel punto (2).
- Avviare l'applicazione web e... la pagina creata nel punto (2) è ora spoglia di qualsiasi decorazione. Se così non è forzate un rfresh della pagina... se il problema non si veriica è possibile non avete configurato bene la sicurezza o NON state usando il "default web server" per testare le vs applicazioni!
Come risolvere? Potente posizione tutti gli elementi decorativi in una specifica cartella (esempio quella dei temi, "App_Themes") e definire un configurazione ad hoc per tale cartella in modo che vi sia consentito l'accesso anonimo.
<location path="App_Themes">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
Oppure NON vi preoccupate del problema perchè quando deployerete con buone probabilità IIS non vi darà qsto tipo di problemi ;-p
posted @ venerdì 24 novembre 2006 01:16