2011-01-24 6 views

답변

13

Roles.GetUsersInRole이 역할에서 사용자 이름의 string[] 반환하는 FindUsersInRole 방법이있다. 당신이 정말로 MembershipUser 객체를 원하는 경우에, 당신은 사용할 수 있습니다 : 그것은 모든 사용자에 대해 한 번 데이터베이스 안타,이 집중적 성능이

물론
var list = Roles.GetUsersInRole("roleName").Select(Membership.GetUser).ToList() 

입니다.

공급자 독립성을 기꺼이 포기할 경우 기본 데이터베이스를 직접 쿼리하고 데이터베이스 서버에서 조인을 수행하여 특정 역할의 모든 사용자를 확보 할 수 있습니다. ListBox 바인딩은이 http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.findusersinrole.aspx

+0

web.config의 부재중 Dorathoto

0
+0

LIKE (FindUsersInRole는 두 개의 매개 변수 모든 사용자 이름이 포함되어야하는 문자열로되어있는 초를 받아 즉, 유의하시기 바랍니다)와 일치해야합니다. 그것은 사용자 이름이 무엇이든 관계없이 _all_ 사용자를 찾기 위해 사용될 수없는 어리석은 방법입니다. – dpant

+0

@dpant RoleProvider는 추상 클래스입니다! 예를 들어, 내 대답은 바로 그 "예제"입니다 - 메서드가 작동하는 방식과 RoleProvider 클래스를 확장하여 반환하는 결과와 추상 메서드를 완전히 정의하므로 두 번째 매개 변수를 무시하고 Null로 전달하려면 너는 할 수있어. 나는 무의미한 의견을 게시하기 전에 이러한 것들이 어떻게 작동하는지 이해할 시간을 가지라고 제안합니다. – Rob

1

이동 당신은 사용할 수 있습니다

ListBox1.DataSource = System.Web.Security.Roles.GetUsersInRole("Role_Name"); 
ListBox1.DataBind(); 
1

통해

관련 문제