Как получить пользователей по ролям - PullRequest
2 голосов
/ 01 декабря 2011
var usersFilterRoles = from u in dataContext.aspnet_Users
join p in dataContext.Partners on u.UserId equals p.Id
where u.aspnet_Roles.Contains(roles)

не работает. Роли - я делаю RoleId или nameRole

Мне нужно получить пользователей по ролям

Ответы [ 3 ]

2 голосов
/ 01 декабря 2011

Получить все имена пользователей, используя Roles.GetUsersInRole Метод и, если вам нужна дополнительная информация, тогда используйте Membership.GetAllUsers () , чтобы получить всех пользователей из Membership и получить рольпользователи из возврата MembershipUserCollection, использующие linq или loop через MembershipUserCollection и добавляющие в пользовательскую коллекцию;какой метод вам больше нравится.

 MembershipUserCollection users;
  string[] usersInRole;


rolesArray = Roles.GetAllRoles();
users = Membership.GetAllUsers();

Проверьте пример ссылки метода GetUsersIndRole, чтобы очистить логику.

Ожидаемый запрос Linq:

string[] usersInRole = Roles.GetUsersInRole("Role");
var users = DataContext.AspnetUsers.Where(usr => usersInRole.Contains(usr.LoweredUserName));

Следуйте этим учебным пособиям и ссылкам для работы с членством.
Членство, роли и профиль ASP.NET
Как вы управляете ролями / пользователями членства asp.net SQL впроизводство?

Метод Roles.AddUsersToRole

Класс ролей - Методы

0 голосов
/ 21 июня 2017

Использование поставщика ролей и членства ASP.NET - это путь, но если вы хотите получить пользователей по роли в linq:

var userRoleQuery = from anu in context.AspNetUsers
                               where anu.AspNetRoles.Any(r => r.Id == roleId)
                               select anu.Id
0 голосов
/ 01 декабря 2011

почему бы не использовать System.Web.Security.Roles?

using System.Web.Security;

namespace App.SomeName
{
    public class YourClass 
    {
         public void GetUsers(){
               string[] users = Roles.GetUsersInRole("MyRole"); 
         }
    }

}

Это то, что вы хотели сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...