我需要使用特定角色中不存在的用户列表填充数组并计算结果。
目前我使用此代码,但我无法获得“CMS-ADMINISTRATOR”角色之外的用户。
知道如何做到这一点并更好地编写计数部分吗?
string[] usersInRole;
usersInRole = Roles.GetUsersInRole("CMS-ADMINISTRATOR");
int c = usersInRole.Count();
我需要使用特定角色中不存在的用户列表填充数组并计算结果。
目前我使用此代码,但我无法获得“CMS-ADMINISTRATOR”角色之外的用户。
知道如何做到这一点并更好地编写计数部分吗?
string[] usersInRole;
usersInRole = Roles.GetUsersInRole("CMS-ADMINISTRATOR");
int c = usersInRole.Count();
如果只需要不在角色中的用户数,可以从用户总数中减去角色中的用户数:
int count = Membership.GetAllUsers.Count - Roles.GetUsersInRole("CMS-ADMINISTRATOR").Count();
请试试,
var usernames = Roles.GetUsersInRole("Administrator");
var adminUsers = db.UserProfiles
.Where(x => !usernames.Contains(x.UserName)).ToList();
adminusers.count
您也可以将其返回到视图
return View(adminUsers);
不确定是否能让用户脱离“CMS-ADMINISTRATOR”角色,但至少您可以像这样更好地编写原始代码:
int count = Roles.GetUsersInRole("CMS-ADMINISTRATOR").Count();
也许是这样:
var users=Membership.GetAllUsers().Cast<MembershipUser>()
.Count(t=>!Roles.IsUserInRole(t.UserName,"CMS-ADMINISTRATOR"));
或者使用 Andy Mikula 建议的更简单的方法,如果您只需要计数。