2023-02-15 330
如何获得每个用户包含角色名称的用户列表?
我的应用程序有MVC项目的默认表.
我能够使用这样的识别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和alid它是从aspnetuserroles查询的.
任何线索?
在身份中的UserManager倾向于混淆人.最终,用户仍然只是上下文中的DbSet,因此您可以使用您的上下文,如查询任何其他对象:
var role = db.Roles.SingleOrDefault(m => m.Name == "role");
var usersInRole = db.Users.Where(m => m.Roles.Any(r => r.RoleId == role.Id));
编辑忘记直接IdentityUser.Roles引用IdentityUserRole而不是IdentityRole.因此,您需要首先获取角色,然后使用角色的ID查询到您的用户.
以上所述是小编给大家介绍的ASP.net Identity 2.1 获取所有有角色的用户,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/33799.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态