viernes, 16 de mayo de 2008

Excluir paginas del Form Authentication

Cuando usamos forms authentication la mayoría de las veces necesitamos excluir paginas de la autenticación para que las puedan acceder usuarios sin autenticar. Para esto supongamos que tenemos un web site simple con tres paginas, a saber:

Default.aspx -> donde se realiza la autenticación
Default2.aspx -> pagina que deseamos excluir de la autenticación (que todos puedan verla)
Default3.aspx -> pagina que pueden solo usuarios autenticados.

Para alcanzar esto debemos modificar nuestro web.config para que quede de la siguiente manera:

<configuration>
<location path="Default2.aspx">
        <system.web>
            <authorization>
                <allow users="?"/>
            </authorization>
        </system.web>
    </location>
    <appSettings/>
    <connectionStrings/>
    <system.web>
        <compilation debug="true"/>
        <authentication mode="Forms">
            <forms name="myform" loginUrl="Default.aspx"></forms>
        </authentication>
        <authorization>
            <deny users ="?"/>
            <allow users="*"/>
        </authorization>
    </system.web>
</configuration>
Recordemos que si deseamos hacer esto para paginas dentro de carpetas, lo podemos hacer en el web.config en la raiz del sitio, o colocando un nuevo web.config en cada carpeta y en éste colocar la seccion de "location" con los "path" que deseamos excluir de la autenticación.

0 comentarios: