ASP.NET 成员资格-扩展应用 1

作者:vkvi 来源:ITPOW(原创) 日期:2008-7-28

使用自定义的成员资格提供程序,毕竟是需要不少的工作量的,实际上,大多数应用程序完全可以使用 SqlMembershipProvider,我们要做的只是做些扩展,我们将以一个示例来说明。

示例应用程序中需要指明一个用户所属的角色、以及该用户所属的地域。角色管理器(RoleProvider)提供了角色的管理,但由于某些原因,我们得用自己的角色管理。

首先,我们需要额外添加一个或多个表,以明确用户名与角色、地域的对应关系。

这个(些)表可按我们的实际需求而建。

然后,我们在创建用户时将 CreateUserWizard 模板化。

        <asp:CreateUserWizard ID="CreateUserWizard1" runat="server"
            RequireEmail="False" LoginCreatedUser="False"
            oncreateduser="CreateUserWizard1_CreatedUser"
            ContinueDestinationPageUrl="~/UserManagement.aspx">
            <WizardSteps>
                <asp:WizardStep ID="WizardStep1" runat="server" StepType="Start" Title="选择新用户角色与所属地域">
                <div>
                    请选择新用户所属角色:
                    <asp:DropDownList ID="_roles" runat="server" DataSourceID="SqlDataSource_role"
                        DataTextField="roleName" DataValueField="roleId">
                    </asp:DropDownList>
                </div>
                <div>
                    请选择新用户所属地域:
                    <asp:DropDownList ID="_districts" runat="server" DataSourceID="SqlDataSource_district"
                        DataTextField="districtName" DataValueField="districtCode">
                    </asp:DropDownList>
                </div>
                </asp:WizardStep>
                <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server" />
                <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server" />
            </WizardSteps>
        </asp:CreateUserWizard>

可以看出,我们在创建用户向导中多添加了一个步骤,选择用户所属的角色和所属的地域。

最后,我们对 CreateUserWizard 控件的 oncreateduser 事件写代码。

oncreateduser 是用户创建成功的事件,也就是说用户创建成功后,我们把角色和地域关联写在我们第一步建立的表中。

  • CreateUserWizard1.UserName 获得用户名。
  • _roles.SelectedValue 获得角色。
  • _districts.SelectedValue 获得地域。
相关文章