ASP.NET Membership + Location Paths
Quando recorremos ao Membership para implementarmos a segurança da nossa aplicação, um dos problemas que podemos ter é quando definimos que determinada pasta será acedida apenas por utilizadores previamente autenticados e nela contemos ficheiros que usamos noutras páginas que não precisam desta mesma autenticação para serem acedidas, como ficheiros de estilos (CSS), imagens, etc.
Se tivermos por exemplo a seguinte estrutura:
/ (root)
/Imagens
/Imagens/usericon.png
/Estilos
/Estilos/estilos.css
/Login.aspx
/MinhaPaginaProtegida.aspx
/OutraPaginaProtegida.aspx
E no web.config definirmos que, para aceder a qualquer página na aplicação temos que estar autenticados,
«span style=”font-size:x-small;color:#a31515;”>authorization</span>>
«/span>deny users=“*“ />
</authorization>
se usarmos o ficheiro de estilos ( /Estilos/estilos.css ) na nossa página de login, ao ser carregada no browser irá aparecer sem qualquer personalização feita. Isto porque na página Login.aspx teremos algo do tipo
«span style=”font-size:x-small;color:#a31515;”>link</span> type=”text/css” rel=”Stylesheet” href=”Estilos/estilos.css” />
Para podermos contornar isso temos que indicar no web.config que o ficheiro poderá ser acedido mesmo não sendo feita a autenticação na aplicação. Para isso usamos o elemento
<system.web>
<authorization>
<allow users=“*“/>
</authorization>
</system.web>
</location>