繁体   English   中英

如何使用ASP.Net Identity Framework 2.0确定用户是否属于某个组

[英]How to determine if a user belongs to a certain group using ASP.Net Identity Framework 2.0

使用新的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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM