使用 Roles.GetUsersInRole 或其他方式查找不属于特定角色的所有用户

发布于 2024-10-14 09:18:00 字数 291 浏览 8 评论 0原文

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

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

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

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

I need populate an array with a list of Users that ARE NOT PRESENT in a specific Role and COUNT the result.

At the moment I use this code, but I am not able to get the Users outside "CMS-ADMINISTRATOR " role.

Any idea how to do it and better write the Count section?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

对不⑦ 2024-10-21 09:18:00

如果您只需要不属于该角色的用户数,则可以从用户总数中减去该角色的用户数:

int count = Membership.GetAllUsers.Count - Roles.GetUsersInRole("CMS-ADMINISTRATOR").Count();

If you just need the number of users not in the role, you can subtract the number of users in the role from the total number of users:

int count = Membership.GetAllUsers.Count - Roles.GetUsersInRole("CMS-ADMINISTRATOR").Count();
不及他 2024-10-21 09:18:00

请尝试一下,

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

adminusers.count

也可以返回到视图中

return View(adminUsers);

Please try,

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

adminusers.count

you can also return it to the view

return View(adminUsers);
夏了南城 2024-10-21 09:18:00

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

 int count = Roles.GetUsersInRole("CMS-ADMINISTRATOR").Count();

Not sure about getting users outside the "CMS-ADMINISTRATOR" role, but at least you can write the original code better like this:

 int count = Roles.GetUsersInRole("CMS-ADMINISTRATOR").Count();
涙—继续流 2024-10-21 09:18:00

也许是这样的:

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

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

Maybe this:

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

Or use what Andy Mikula suggests which is simpler if you just need the count.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文