Saltar al contenido principal

 none
Filtrar usuarios por un determinado rol Identity RRS feed

  • Pregunta

  • Estoy usando ASP.NET Identity para utilizar autenticaciones y autorizaciones en una aplicacion MVC. Quiero obtener una lista de usuarios pero por un determinado rol. Obtuve la lista pero me esta costando hacer el filtro. Les muestro mi controlador:

    public class AdminController : Controller
    {
        public UserManager<ApplicationUser> UserManager { get; private set; }
        public RoleManager<IdentityRole> RoleManager { get; private set; }
        public ApplicationDbContext contexto { get; private set; }
        public AdminController()
        {
            contexto = new ApplicationDbContext();
            UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(contexto));
            RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(contexto));
        }
    
        public AdminController(UserManager<ApplicationUser> userManager, RoleManager<IdentityRole> roleManager)
        {
            UserManager = userManager;
            RoleManager = roleManager;
        }
    
        public async Task<ActionResult> GestionarClientes()
        {
            return View(await UserManager.Users.ToListAsync());
        }
    }

    No se como usar un Where en la vista GestionarClientes, que me filtre el Roles donde sean "Clientes" Alguna sugerencia? Gracias.

    martes, 29 de octubre de 2019 20:51

Todas las respuestas

  • Hola, prueba a realizar algo parecido a esto

    Hacer un include de Roles

    UserManager.Users.Include(a=> a.Roles).Where(a =>
        a.Roles.Any(b => b.RoleName == "Clientes")).ToListAsync() ;


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    domingo, 3 de noviembre de 2019 16:23
    Moderador