Manejo de Roles en ASP.NET

Buenas a todos espero se encuentren bien.

Me han escrito nuevamente desde costa rica, y un articulo que les gustaría este dentro de este blog es manejar los roles en ASP.NET.

A continuación les muestro unos ejemplos sencillos de como hacerlo.

1.- Asignar usuario a ROL.

rolesadd

Dentro de el puedes hacerlo de la siguiente manera :

Roles.AddUserToRole(this.txtusuario.text, "Administrador");

Para hacerlo mas completo posible, se verifica si el USUARIO no existe en el rol.

ASI:

rolesuser

if (!Roles.IsUserInRole(this.txtusuario.text))
{
    Roles.AddUserToRole(this.txtusuario.text, "Administrador");
    Response.Write("Usuario asignado al rol");
}
else
{
    Response.Write("Este usuario ya se encuentra agregado a el rol especificado");
}

Hecho en VB.NET

If Not Roles.IsUserInRole(txtusuario.text,) Then
            Roles.AddUserToRole(txtusuario.text, "Administrador")
            Response.Write("Usuario asignado al rol")
Else
       Response.Write("Este usuario ya se encuentra agregado a el rol especificado")
End If

 

2.- Crear Roles.

rolescreate

Dentro de el puedes hacerlo de la siguiente manera :

Verificas si el rol no existe, de ser cierto, entonces lo crea.

rolesexits

if (!Roles.RoleExists("Administrador"))
{
    Roles.CreateRole("Supervisor");
}
else
{
    Response.Write("El rol ya existe");
}

Hecho en VB.NET

If Not Roles.RoleExists(txtroles.Text) Then
    Roles.CreateRole(txtroles.Text)
Else
    Response.Write("El rol ya existe")
End If

 

3.- Obtener todos los Roles existentes.

Si deseas obtener una lista de todos los roles existentes en la base de taos puedes hacerlo de la siguiente manera:

He tomado para este ejemplo un GridView para mostrar la información.

rolesAll

string[] arrayroles = Roles.GetAllRoles();

this.GVRol.DataSource = arrayroles;
this.GVRol.DataBind();

 

4.- Remover Usuario desde Rol Seleccionado

rolesremove

Para remover el usuario desde un rol seleccionado se hace de la siguiente manera:

Roles.RemoveUserFromRole(this.txtusuario.text, "Administrador");

Si cargas los roles en un control, por ejemplo un ListBox, puedes hacerlo así:

Roles.RemoveUserFromRole(this.txtusuario.text, RolesListBox.SelectedItem.Value);

 

Nota: existen mas roles existentes, este articulo denota algunos.

No olviden dejar su comentario, ayudan a crecer.

Espero seas de gran ayuda esta informacion, hasta la próxima.

Saludos…

5 comentarios

  1. Hola muy buena expliacacion pero como le hago para verificar si el usuario pertence a un determinado rol para saber que es lo qeu pueda realizar dependiendo si es administrador o usuario gracias

  2. Hola cesar espero estes bien.

    Bueno puedes hacer lo siguiente:

    para “SABER SI EL USUARIO EXISTE EN UN DETERMINADO ROL” hay un metodo que se llama IsUserInRole el cual recibe 2 parametros. “string username”, string rolName” con eso tu puedes verificar si el usuario existe en un determinado rol.

    if (Roles.IsUserInRole(this.txtusuario, “Tu Rol”))
    {
    …… Colocas Tu logica ……
    }
    Nota: Avisame si solucionastes.
    Saludos espero sea de gran ayuda mi respuesta.

    Nelson Gomez…

  3. Gracias, un gran aporte.

  4. Excelente aporte….. corta explicación y efectivo

  5. me sirvio el tutorial, gracias.
    De que forma puedo resolver que cuando un usuario haga un logout, al dar al boton regresar no vuelva a entrar al area restringida, ya q cuando vuelve al area restringida y se refresca la pagina entonces si manda a login, como podre resolver esto.
    De antemano gracias

Escribe un comentario