我希望使用根据 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() 以检索信息,然后将其绑定到表。但是,我不确定如何执行此操作,以及它是否是最有效的方法。