【发布时间】:2015-01-09 17:44:36
【问题描述】:
如何获取用户列表,包括每个用户的角色名称? 我的应用具有 MVC 项目的默认表。
我可以像这样使用 Identity 2.1 检索所有用户:
型号
public class GetVendorViewModel
{
public IList<ApplicationUser> Vendors { get; set; }
}
控制器
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);
}
现在正在返回这个:
[
{
UserId: "4f9ed316-a852-45a9-93a8-a337a37b1c74",
RoleId: "a17bb59c-285a-43f9-b5ad-65f46f94bb4f"
}
]
这是正确的,但我需要显示用户信息,例如姓名、电子邮件、用户名等。
我想返回一个像这样的 json 对象:
[
{
UserId: "4f9ed316-a852-45a9-93a8-a337a37b1c74",
RoleId: "a17bb59c-285a-43f9-b5ad-65f46f94bb4f"
RoleName: "Administrator"
User: {
name:"Joe Doe",
email:"jd@mail.com",
...
}
},
{
...
}
]
RoleName 在表 AspNetRoles 中。
UserId 和 RoleId 是从 AspNetUserRoles 查询的。
有什么线索吗?
【问题讨论】:
-
DavidH,您应该提供一些应用代码以获得合适的答案。
标签: asp.net-identity asp.net-identity-2 user-roles