2011-12-01 147 views
1
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角色

回答

0

獲得用戶?

using System.Web.Security; 

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

} 

這是你想要做的嗎?

0

使用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

如果我需要得到「用戶」 「管理員」?我需要加入合作伙伴 –

0

如果要通過角色在LINQ to得到用戶:

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