如何确定用户是否属于某个组.网络身份框架2.0
本文关键字:身份 网络 框架 用户 何确定 是否 属于 | 更新日期: 2023-09-27 18:08:59
使用新的ASP。Net Identity Framework 2.0,我正在尝试确定属于某个组的用户列表。
UserManager和RoleManager是正确的实例化,我得到正确的信息,而调试,但我不明白如何使用user.Roles.Contains。
var _listAllUsers = UserManager.Users.ToListAsync().Result;
//var _allUsers = UserManager.Users;
var roleToMatch = RoleManager.FindByNameAsync("MyUserManager").Result;
foreach (var user in _listAllUsers){
var _listGroupAdminCat = user.Roles.Contains((IdentityUserRole)roleToMatch);
}
我在语法中遗漏了一些东西。
首先获得您的IdentityRole
对象:
var role = RoleManager.FindByName("MyUserManager");
然后获取该角色中的用户:
var usersInRole = role.Users;
你的问题标题问了一个稍微不同的问题,如何确定用户是否在一个角色中。为此,像这样使用UserManager
:
int userId = 5;
string roleToCheck = "MyRole";
bool userIsInRole = userManager.IsInRole(5, roleToCheck );
同样值得注意的是,在你发布的代码中,你错误地使用了异步函数。可以将它们与await
关键字一起使用,或者使用同步版本:
var roleSynchronously = RoleManager.FindByName("MyUserManager");
var roleAsynchronously = await RoleManager.FindByNameAsync("MyUserManager");