La autenticación de ASP.NET 2 nos permite tener una estructura de Roles y Usuarios. Puedes tener algo así:

Administradores
jlopez
pperez
fgonzalez

Capturista
pperez
ymartinez

Nota que en el ejemplo anterior pperez aparece en ambos grupos. Esto es posible y es correcto. En el ejemplo, pperez funge como administrador y como capturista a la vez.

Ahora supongamos que tengo una carpeta para administradores y otra carpeta para capturistas en el fólder raíz de mi aplicación:

Fólders

Lo que voy a hacer para poder autenticar por roles es abrir el archivo web.config y colocar la siguiente porción de código:

  1. <location path="admin">
  2.   <system.web>
  3.     <authorization>
  4.       <allow roles="admin"/>
  5.       <deny users="*"/>
  6.     </authorization>
  7.   </system.web>
  8. </location>
  9.  
  10. <location path="capturista">
  11.   <system.web>
  12.     <authorization>
  13.       <allow roles="admin,capturista"/>
  14.       <deny users="*"/>
  15.     </authorization>
  16.   </system.web>
  17. </location>

justamente bajo la sección configuration.

Nota que estamos dejando entrar a ciertos roles usando la entrada allow y estamos denegando a todos (con el asterisco) usando deny. El orden es importante, si lo inviertes, primero se denegaría a todos los usuarios, y después se intentaría permitir el acceso a los roles, lo cual significaría que no estarías dejando entrar a nadie.

NOTA:
Para que esto funcione correctamente, debes estar utilizando un MembershipProvider y un RoleProvider. Si estás conectando con SQL Server te será fácil encontrar información en Google. Si por casualidad estás intentando conectarte con MySQL, lee este post.

Más información:
Authentication y Authorization
Autorizando Usuarios y Roles

2 comentarios sobre “Cómo usar autenticación por Roles y Usuarios en ASP.NET 2

  1. quisiera saber como podria hacer una aplicacion la cual pueda crear y utilizar mis roles programados por mi y asignarles sus menus por usuarios.
    soy nuevo en esto pero no me gustaria hacerlo con la seguridad de la base de datos de aspnet.

  2. Hola max, lee este post:
    http://www.viale.com.mx/2008/02/22/como-crear-las-tablas-del-membership-y-role-provider-en-sql-server/

    Ahí viene como crear las tablas del Membership y los roles y usuarios que tú decidas. Si lo tienes que hacer mediante código de servidor, dale un vistazo a las clases “Roles” y “Membership”. Mediante ellas puedes crear roles y usuarios, asignar usuarios a roles, borrar usuarios, borrar roles, remover usuarios de ciertos roles, checar si un usuario pertenece a cierto rol, etc.

    Sobre crear un menú distinto para cada usuario, échale un ojo al control LoginView. Este control permite definir templates, puedes crear un template para cada uno de tus roles o grupos de roles.

    Si dentro de cada template pones un menú de tipo TreeView, tienes lo que buscas.

    Saludos y suerte!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


4 + = ocho