2

我需要使用特定角色中不存在的用户列表填充数组并计算结果。

目前我使用此代码,但我无法获得“CMS-ADMINISTRATOR”角色之外的用户。

知道如何做到这一点并更好地编写计数部分吗?

       string[] usersInRole;
       usersInRole = Roles.GetUsersInRole("CMS-ADMINISTRATOR");
       int c = usersInRole.Count();
4

4 回答 4

3

如果只需要不在角色中的用户数,可以从用户总数中减去角色中的用户数:

int count = Membership.GetAllUsers.Count - Roles.GetUsersInRole("CMS-ADMINISTRATOR").Count();
于 2011-01-27T06:54:20.243 回答
2

请试试,

            var usernames = Roles.GetUsersInRole("Administrator");
            var adminUsers = db.UserProfiles
                 .Where(x => !usernames.Contains(x.UserName)).ToList();

adminusers.count

您也可以将其返回到视图

return View(adminUsers);
于 2013-08-23T16:11:04.983 回答
0

不确定是否能让用户脱离“CMS-ADMINISTRATOR”角色,但至少您可以像这样更好地编写原始代码:

 int count = Roles.GetUsersInRole("CMS-ADMINISTRATOR").Count();
于 2011-01-27T06:53:16.573 回答
0

也许是这样:

var users=Membership.GetAllUsers().Cast<MembershipUser>()
           .Count(t=>!Roles.IsUserInRole(t.UserName,"CMS-ADMINISTRATOR"));

或者使用 Andy Mikula 建议的更简单的方法,如果您只需要计数。

于 2011-01-27T06:56:49.113 回答