SqlMembershipProvider スキーマに従ってセットアップされたデータベース テーブルを使用して、すべてのユーザーの概要テーブルを作成したいと考えています。これまでのところ、私は持っています:
<asp:GridView ID="UserAccounts" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="UserName" HeaderText="UserName" />
<asp:BoundField DataField="Email" HeaderText="Email" />
<asp:TemplateField HeaderText="Role">
<ItemTemplate>
<asp:TextBox ID="RoleText" ReadOnly="true" runat="server">
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
テーブル、および分離コード:
UserAccounts.DataSource = Membership.GetAllUsers();
UserAccounts.DataBind();
ユーザーのリストを生成します。ただし、SQLmembershipprovider に精通している方のように、ユーザーに関連付けられたロールは複数の個別のテーブルに格納されています。したがって、その情報を取得して各ユーザーの横に表示する方法がわかりません。
私が現在考えている解決策は、テーブルを行ごとにトラバースし、そのユーザー名で Roles.GetRolesForUser() を呼び出して情報を取得し、それをテーブルにバインドすることです。ただし、これを行う方法と、それが最も効率的な方法であるかどうかはわかりません。