How can I get a list of users, including the role name for the user? My application has default tables of the MVC project.
I can extract all users using Identity 2.1 as follows:
Model
public class GetVendorViewModel { public IList<ApplicationUser> Vendors { get; set; } }
controller
public ActionResult Index() { var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())); var roleStore = new RoleStore<IdentityRole>(ac); var roleManager = new RoleManager<IdentityRole>(roleStore); var vendor = roleManager.FindByName("Vendor").Users; var model = new GetVendorViewModel { Vendors = vendor }; return View("~/Views/User/Administrator/Vendor/Index.cshtml", model); }
This is returning right now:
[ { UserId: "4f9ed316-a852-45a9-93a8-a337a37b1c74", RoleId: "a17bb59c-285a-43f9-b5ad-65f46f94bb4f" } ]
This is correct, but I need to display user information such as name, email address, username, etc.
I would like to return a json object as follows:
[ { UserId: "4f9ed316-a852-45a9-93a8-a337a37b1c74", RoleId: "a17bb59c-285a-43f9-b5ad-65f46f94bb4f" RoleName: "Administrator" User: { name:"Joe Doe", email:" jd@mail.com ", ... } }, { ... } ]
RoleName is in the AspNetRoles table.
UserId and RoleId are a request from AspNetUserRoles.
Any clues?
source share