AuthorizationStoreRoleProvider.GetUsersInRole メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim instance As AuthorizationStoreRoleProvider Dim roleName As String Dim returnValue As String() returnValue = instance.GetUsersInRole(roleName)
戻り値
指定されたロールのメンバであるすべてのユーザーの名前を格納している文字列配列。


GetUsersInRole メソッドは Roles クラスによって呼び出され、ASP.NET アプリケーションの構成ファイル (Web.config) に指定されている承認マネージャ ポリシー ストアの指定のロールに関連付けられたユーザーの一覧を取得します。
GetUsersInRole メソッドは、roleName パラメータで指定されている承認マネージャ ロールに直接属しているユーザー名のみ返します。GetUsersInRole メソッドによって呼び出される基の承認マネージャ API は、グループ拡張をサポートしていません。したがって、入れ子になった NT グループ、承認マネージャ グループ、または LDAP クエリ グループに属すユーザーは返されません。

GetUsersInRole メソッドを使用して特定のロールのユーザー一覧を取得し、その結果を System.Web.UI.WebControls.GridView コントロールにバインドするコード例を次に示します。ロール管理を有効にする Web.config ファイルの例については、AuthorizationStoreRoleProvider のトピックを参照してください。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Security" %> <%@ Import Namespace="System.Web.UI" %> <script runat="server"> Dim rolesArray() As String Dim users As MembershipUserCollection Dim usersInRole() As String Public Sub Page_Load() Msg.Text = "" If Not IsPostBack Then ' Bind roles to ListBox. rolesArray = Roles.GetAllRoles() RolesListBox.DataSource = rolesArray RolesListBox.DataBind() ' Bind users to ListBox. users = Membership.GetAllUsers() UsersListBox.DataSource = users UsersListBox.DataBind() End If If Not RolesListBox.SelectedItem Is Nothing Then ' Show users in role. Bind user list to GridView. usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value) UsersInRoleGrid.DataSource = usersInRole UsersInRoleGrid.DataBind() End If End Sub Public Sub AddUsers_OnClick(ByVal sender As Object, ByVal args As EventArgs) ' Verify that a role is selected. If RolesListBox.SelectedItem Is Nothing Then Msg.Text = "Please select a role." Return End If ' Verify that at least one user is selected. If UsersListBox.SelectedItem Is Nothing Then Msg.Text = "Please select one or more users." Return End If ' Create list of users to be added to the selected role. Dim newusers(UsersListBox.GetSelectedIndices().Length - 1) As String For i As Integer = 0 To newusers.Length - 1 newusers(i) = UsersListBox.Items(UsersListBox.GetSelectedIndices(i)).Value Next ' Add the users to the selected role. Try Roles.AddUsersToRole(newusers, RolesListBox.SelectedItem.Value) ' Re-bind users in role to GridView. usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value) UsersInRoleGrid.DataSource = usersInRole UsersInRoleGrid.DataBind() Catch e As Exception Msg.Text = e.Message End Try End Sub Public Sub UsersInRoleGrid_RemoveFromRole(ByVal sender As Object, ByVal args As GridViewCommandEventArgs) ' Get the selected user name to remove. Dim index As Integer = Convert.ToInt32(args.CommandArgument) Dim username As String = (CType(UsersInRoleGrid.Rows(index).Cells(0).Controls(0), DataBoundLiteralControl)).Text ' Remove the user from the selected role. Try Roles.RemoveUserFromRole(username, RolesListBox.SelectedItem.Value) Catch e As Exception Msg.Text = "An exception of type " & e.GetType().ToString() & _ " was encountered removing the user from the role." End Try ' Re-bind users in role to GridView. usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value) UsersInRoleGrid.DataSource = usersInRole UsersInRoleGrid.DataBind() End Sub </script> <html> <head> <title>Sample: Role Membership</title> </head> <body> <form runat="server" id="PageForm"> <h3> Role Membership</h3> <asp:Label ID="Msg" ForeColor="maroon" runat="server" /><br> <table cellpadding="3" border="0"> <tr> <td valign="top"> Roles:</td> <td valign="top"> <asp:ListBox ID="RolesListBox" runat="server" Rows="8" AutoPostBack="true" /></td> <td valign="top"> Users:</td> <td valign="top"> <asp:ListBox ID="UsersListBox" DataTextField="Username" Rows="8" SelectionMode="Multiple" runat="server" /></td> <td valign="top"> <asp:Button Text="Add User(s) to Role" ID="AddUsersButton" runat="server" OnClick="AddUsers_OnClick" /></td> </tr> <tr> <td valign="top"> Users In Role:</td> <td valign="top"> <asp:GridView runat="server" CellPadding="4" ID="UsersInRoleGrid" AutoGenerateColumns="false" GridLines="None" CellSpacing="0" OnRowCommand="UsersInRoleGrid_RemoveFromRole"> <HeaderStyle BackColor="navy" ForeColor="white" /> <Columns> <asp:TemplateField HeaderText="User Name" runat="server"> <ItemTemplate> <%# Container.DataItem.ToString() %> </ItemTemplate> </asp:TemplateField> <asp:ButtonField runat="server" Text="Remove From Role" ButtonType="Link" /> </Columns> </asp:GridView> </td> </tr> </table> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <%@ Import Namespace="System.Web.UI" %> <script runat="server"> string[] rolesArray; MembershipUserCollection users; string[] usersInRole; public void Page_Load() { Msg.Text = ""; if (!IsPostBack) { // Bind roles to ListBox. rolesArray = Roles.GetAllRoles(); RolesListBox.DataSource = rolesArray; RolesListBox.DataBind(); // Bind users to ListBox. users = Membership.GetAllUsers(); UsersListBox.DataSource = users; UsersListBox.DataBind(); } if (RolesListBox.SelectedItem != null) { // Show users in role. Bind user list to GridView. usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value); UsersInRoleGrid.DataSource = usersInRole; UsersInRoleGrid.DataBind(); } } public void AddUsers_OnClick(object sender, EventArgs args) { // Verify that a role is selected. if (RolesListBox.SelectedItem == null) { Msg.Text = "Please select a role."; return; } // Verify that at least one user is selected. if (UsersListBox.SelectedItem == null) { Msg.Text = "Please select one or more users."; return; } // Create list of users to be added to the selected role. string[] newusers = new string[UsersListBox.GetSelectedIndices().Length]; for (int i = 0; i < newusers.Length; i++) { newusers[i] = UsersListBox.Items[UsersListBox.GetSelectedIndices()[i]].Value; } // Add the users to the selected role. try { Roles.AddUsersToRole(newusers, RolesListBox.SelectedItem.Value); // Re-bind users in role to GridView. usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value); UsersInRoleGrid.DataSource = usersInRole; UsersInRoleGrid.DataBind(); } catch (Exception e) { Msg.Text = e.Message; } } public void UsersInRoleGrid_RemoveFromRole(object sender, GridViewCommandEventArgs args) { // Get the selected user name to remove. int index = Convert.ToInt32(args.CommandArgument); string username = ((DataBoundLiteralControl)UsersInRoleGrid.Rows[index].Cells[0].Controls[0]).Text; // Remove the user from the selected role. try { Roles.RemoveUserFromRole(username, RolesListBox.SelectedItem.Value); } catch (Exception e) { Msg.Text = "An exception of type " + e.GetType().ToString() + " was encountered removing the user from the role."; } // Re-bind users in role to GridView. usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value); UsersInRoleGrid.DataSource = usersInRole; UsersInRoleGrid.DataBind(); } </script> <html> <head> <title>Sample: Role Membership</title> </head> <body> <form runat="server" id="PageForm"> <h3> Role Membership</h3> <asp:Label ID="Msg" ForeColor="maroon" runat="server" /><br> <table cellpadding="3" border="0"> <tr> <td valign="top"> Roles:</td> <td valign="top"> <asp:ListBox ID="RolesListBox" runat="server" Rows="8" AutoPostBack="true" /></td> <td valign="top"> Users:</td> <td valign="top"> <asp:ListBox ID="UsersListBox" DataTextField="Username" Rows="8" SelectionMode="Multiple" runat="server" /></td> <td valign="top"> <asp:Button Text="Add User(s) to Role" ID="AddUsersButton" runat="server" OnClick="AddUsers_OnClick" /></td> </tr> <tr> <td valign="top"> Users In Role:</td> <td valign="top"> <asp:GridView runat="server" CellPadding="4" ID="UsersInRoleGrid" AutoGenerateColumns="false" GridLines="None" CellSpacing="0" OnRowCommand="UsersInRoleGrid_RemoveFromRole"> <HeaderStyle BackColor="navy" ForeColor="white" /> <Columns> <asp:TemplateField HeaderText="User Name" runat="server"> <ItemTemplate> <%# Container.DataItem.ToString() %> </ItemTemplate> </asp:TemplateField> <asp:ButtonField runat="server" Text="Remove From Role" ButtonType="Link" /> </Columns> </asp:GridView> </td> </tr> </table> </form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- AuthorizationStoreRoleProvider.GetUsersInRole メソッドのページへのリンク