Найти всех пользователей, которые НЕ находятся в определенной роли, используя: Roles.GetUsersInRole или другое - PullRequest
2 голосов
/ 27 января 2011

Мне нужно заполнить массив списком пользователей, которых нет в определенной роли и ПОСЧИТАТЬ результат.

В данный момент я использую этот код, но я нев состоянии получить пользователей вне роли "CMS-ADMINISTRATOR".

Есть идеи, как это сделать, и лучше написать раздел Count?

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

Ответы [ 4 ]

3 голосов
/ 27 января 2011

Если вам просто нужно количество пользователей, не входящих в роль, вы можете вычесть количество пользователей в роли из общего числа пользователей:

int count = Membership.GetAllUsers.Count - Roles.GetUsersInRole("CMS-ADMINISTRATOR").Count();
2 голосов
/ 23 августа 2013

Пожалуйста, попробуйте,

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

adminusers.count

Вы также можете вернуть его в представление

return View(adminUsers);
0 голосов
/ 27 января 2011

Может быть, это:

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

Или используйте то, что предлагает Энди Микула, что проще, если вам просто нужен счет.

0 голосов
/ 27 января 2011

Не уверен насчет того, чтобы вывести пользователей за пределы роли «CMS-ADMINISTRATOR», но по крайней мере вы можете написать оригинальный код лучше, например так:

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