Treballar amb autenticació d'usuaris en ASP.NET MVC 5 - Gestionar els Rols d'usuaris ( crear, eliminar i assignar rols )
El rols permeten agrupar usuaris per funcions o privilegis. Els usuaris podran fer unes coses i no unes altres en funció del rol al qual pertànyen. Un usuari pot tenir més d'un rol.
Per gestionar rols farem servir la classe RoleManager que ens proporciona ASP.NET MVC. La idea és que instanciem el RoleManager passant-li com a argument un RoleStore i al RoleStore li passem com a argument la instància de l'ApplicationDbContext, en el nostre cas per mitjà de la variable db.
Si escribim el següent codi i executem l'aplicació, ens crearà el rol "Administrador" un cop ens haguem validat ja que així li exigim en el codi per mitjà de la instrució if (User.Identity.IsAuthenticated)
public class HomeController : Controller
{
public ActionResult Index()
{
if (User.Identity.IsAuthenticated)
{
using (ApplicationDbContext db = new ApplicationDbContext())
{
var idUsuariActual = User.Identity.GetUserId();
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(db));
//Crear rol
var resultat = roleManager.Create(new IdentityRole ("Administrador"));
}
}
return View();
}
{
Si després d'iniciar sessió com a usuari registrat anem a la taula AspNetRoles de SQL Server veurem el rol creat.
Agregar un rol a un usuari
Assignar un rol a un usuari vol dir que agreguem a la taula AspNetUserRoles de SQL Server el registre que relaciona l'usuari amb el rol.
Per fer-ho per mitjà d'ASP.NET MVC primer necessitem instanciar l'UserManager i fer servir la funció AddToRole.
public class HomeController : Controller
{
public ActionResult Index()
{
if (User.Identity.IsAuthenticated)
{
using (ApplicationDbContext db = new ApplicationDbContext())
{
var idUsuariActual = User.Identity.GetUserId();
//Instanciem l'UserManager per poder treballar amb usuaris
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
//Agreguem usuari al rol
var resultat = userManager.AddToRole(idUsuariActual, "Administrador");
}
}
return View();
}
}
Amb aquest codi el que aconseguim és crear un registre a la taula AspNetUserRoles de SQL Server assignant el rol "Administrador" a l'usuari actual.
Si anem a SQL Server veurem el registre creat:
Per gestionar rols farem servir la classe RoleManager que ens proporciona ASP.NET MVC. La idea és que instanciem el RoleManager passant-li com a argument un RoleStore i al RoleStore li passem com a argument la instància de l'ApplicationDbContext, en el nostre cas per mitjà de la variable db.
Si escribim el següent codi i executem l'aplicació, ens crearà el rol "Administrador" un cop ens haguem validat ja que així li exigim en el codi per mitjà de la instrució if (User.Identity.IsAuthenticated)
public class HomeController : Controller
{
public ActionResult Index()
{
if (User.Identity.IsAuthenticated)
{
using (ApplicationDbContext db = new ApplicationDbContext())
{
var idUsuariActual = User.Identity.GetUserId();
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(db));
//Crear rol
var resultat = roleManager.Create(new IdentityRole ("Administrador"));
}
}
return View();
}
{
Si després d'iniciar sessió com a usuari registrat anem a la taula AspNetRoles de SQL Server veurem el rol creat.
Assignar un rol a un usuari vol dir que agreguem a la taula AspNetUserRoles de SQL Server el registre que relaciona l'usuari amb el rol.
Per fer-ho per mitjà d'ASP.NET MVC primer necessitem instanciar l'UserManager i fer servir la funció AddToRole.
public class HomeController : Controller
{
public ActionResult Index()
{
if (User.Identity.IsAuthenticated)
{
using (ApplicationDbContext db = new ApplicationDbContext())
{
var idUsuariActual = User.Identity.GetUserId();
//Instanciem l'UserManager per poder treballar amb usuaris
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
//Agreguem usuari al rol
var resultat = userManager.AddToRole(idUsuariActual, "Administrador");
}
}
return View();
}
}
Amb aquest codi el que aconseguim és crear un registre a la taula AspNetUserRoles de SQL Server assignant el rol "Administrador" a l'usuari actual.
Si anem a SQL Server veurem el registre creat:
Comentaris
Publica un comentari a l'entrada