[英]How do I get the List of Role and Number of users in them asp.net mvc
以下代碼將對您有所幫助。
var result = ( from r in userManager.UserRoles
join u in userManager.Users on r.UserId equals u.Id
group new { r, u } by new { r.RoleId } into grp
select new { name = grp.FirstOrDefault().r.Name, count=grp.Count()}).ToList();
我知道這個問題已有一年多的歷史了,但這是ASP Core 2.2中的更新。
這段代碼在PageModel上運行,事情變得越來越簡單:)
//Creation of class
public class RolesModel : PageModel
{
private readonly UserManager<IdentityUser> _userManager;
private readonly RoleManager<IdentityRole> _roleManager;
private readonly ILogger<RolesModel> _logger;
public RolesModel(
UserManager<IdentityUser> userManager,
RoleManager<IdentityRole> roleManager,
ILogger<RolesModel> logger)
{
_userManager = userManager;
_roleManager = roleManager;
_logger = logger;
}
//(...)
//Now check in some class
public async Task<IActionResult> OnGetAsync()
{
var RolesList = _roleManager.Roles.OrderBy(x => x.Name).ToList();
foreach (var role in RolesList)
{
var RolesUserlist = await _userManager.GetUsersInRoleAsync(role.Name);
_logger.LogInformation($"Role {role.Name} has {RolesUserlist.Count} users");
}
}
干杯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.