如何通过角色获取用户

问题描述:

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) 

无法使用。 角色 - 我角色ID或nameRole如何通过角色获取用户

我需要,为什么不使用System.Web.Security.Roles角色

获得用户?

using System.Web.Security; 

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

} 

这是你想要做的吗?

使用Roles.GetUsersInRole方法获取所有用户名,如果你需要更多的信息,然后使用Membership.GetAllUsers()Membership让所有的用户和使用LINQ或loop通过MembershipUserCollection从返回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's Membership, Roles, and Profile
How do you manage asp.net SQL membership roles/users in production?

Roles.AddUsersToRole Method

Roles Class - Methods

+0

没有,我需要从数据库 –

+0

我已经更新了答案查询经过测试的结果..检查它 –

+0

如果我需要得到“用户” “管理员”?我需要加入合作伙伴 –

如果要通过角色在LINQ to得到用户:

var userRoleQuery = from anu in context.AspNetUsers 
           where anu.AspNetRoles.Any(r => r.Id == roleId) 
           select anu.Id