Primero establezca la membresía y el proveedor de funciones. Hay toda una historia al respecto. Daré una ayuda aquí.
Aquí hay un enlace a SqlMembershipProvider (una de las opciones que puede tomar):http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx
Aquí hay un enlace a SqlRoleProvider (nuevamente, solo una de las opciones que puede tomar)::http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx
Una vez que haya establecido esto, puede limitar el acceso de usuario/función a nivel de carpeta. Coloque este código en web.config (dentro de la etiqueta de configuración):
<location path="AdminPages">
<system.web>
<authorization>
<allow roles="Administrator"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="UserPages">
<system.web>
<authorization>
<allow roles="Administrator,User"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
Aquí hay una pequeña explicación. La carpeta raíz "AdminPages" solo se permitirá a los usuarios con el rol "Administradores". Carpeta raíz "UserPages" para usuarios con rol "Administrador" y "Usuario". En ambos casos, los usuarios desconocidos no podrán acceder a las carpetas. Esto es todo lo que necesitas. Una alternativa a esto es crear una clase que herede de Page y luego manejar el acceso a la página... sin embargo, yo no iría por ese camino.