2011-01-24 12 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

FindUsersInRoleがLIKEすべてのユーザー名が含まれている必要があることを文字列である第二そのうち二つのパラメータ(すなわちを受け付けますのでご注意ください)を使用して一致させます。これは、ユーザー名が何であれ、ロール内の_all_ユーザーを見つけるために使用することができない愚かな方法です。 – dpant

+0

@dpant RoleProviderは抽象クラスです!私の答えのリンク上の例はちょうどその "例"です - メソッドがどのように働くのか、そしてRoleProviderクラスを拡張して抽象メソッドを完全に返すことで、2番目のパラメータを無視し、あなたはできる。無意味なコメントを投稿する前に、これらのことがどう機能するかを理解する時間を取ることをお勧めします。 – Rob

1

ゴー:

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

関連する問題