当前位置:  开发笔记 > 编程语言 > 正文

具有Identity 2.2.1中的角色列表的用户列表

如何解决《具有Identity2.2.1中的角色列表的用户列表》经验,为你挑选了0个好方法。

所以我一直在搜索Google和SO.这个问题的感觉已被多次询问,但没有答案对我有帮助,但我觉得我已经接近了.但是,我是LINQ和Lambda的新手,并且没有做我想做的事情的知识.

期望的结果

User                   Roles
-----------------------------------------
John                   Admin
Jane                   Staff, HR, Payroll
MyCoolUserName         User

我非常接近这篇文章和这篇文章.这是我到目前为止所得到的.

视图模型:

public class UsersViewModel {
    [Display(Name = "User")]
    public ApplicationUser User { get; set; }

    [Display(Name = "Roles")]
    public string Roles { get; set; }
}

控制器:

试验#1

此解决方案返回角色的空白,我不得不将其添加到我的web.config文件中:

public class UsersController : Controller {
    public async Task Index() {
        var allUsers = await db.Users.ToListAsync();
        var users = new List();
        foreach (var user in allUsers) {
            String[] roles = Roles.GetRolesForUser(user.UserName);
            users.Add(new UsersViewModel {User = u, Roles = String.Join(",", roles.ToArray())});
        }
        return View(users);
    }
}

试验#2

此解决方案为每个角色的每个用户返回一行,但仅返回 RoleId

public class UsersController : Controller {
    public async Task Index() {
        var allUsers = await db.Users.ToListAsync();
        var users = allUsers.Select(u => new UsersViewModel {User = u, Roles = String.Join(",", u.Roles.Select(r => r.RoleId))}).ToList();
        return View(users);
    }
}

以下是我改为试用#2时RoleId获得的结果RoleName: GIF在User.Roles中显示对象

我可以说,在试验#2中,u.Roles它与UserRoles表格相关联.从逻辑上讲,我知道我想要的是内部加入Roles表并在那里得到名称.

我希望有人可以帮助我吗?提前致谢.示例项目

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有