下面的代码示例是为一个小型公司中的每个部门定义分别定义了成员资格提供程序。我们根据下拉列表中选择的账户类型来选择不同的成员资格提供程序。对于此示例,每个成员资格提供程序都指向 connectionString 定义的 SQL Server 数据库。效果如下图所示:
首先,我们需要在 web.config 文件的<provider>节中添加下面四个成员资格提供程序配置。
<add name="accountingProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SQLConnString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
description="Stores and retrieves membership data from a Microsoft SQL Serverdatabase."
/>
<add name="manufacturingProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SQLConnString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
description="Stores and retrieves membership data from a Microsoft SQL Serverdatabase."
/>
<add name="marketingProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SQLConnString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
description="Stores and retrieves membership data from a Microsoft SQL Serverdatabase."
/>
<add name="salesProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SQLConnString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
description="Stores and retrieves membership data from a Microsoft SQL Serverdatabase."
/>
然后,我们添加下面的代码,该示例在创建用户帐户前插入一个步骤,以确定该用户属于单位中的哪个部门。 然后,将 MembershipProvider 提供程序设为与该部门相应的提供程序。
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" onnextbuttοnclick="CreateUserWizard1_NextButtonClick">
<WizardSteps>
<asp:wizardstep ID="Wizardstep1" runat="server" title="Choose yourdivision">
<p>Choose your division and click "Next".</p>
<asp:dropdownlist runat="server" id="divisionList">
<asp:listitem value="accountingProvider">Accounting</asp:listitem>
<asp:listitem value="manufacturingProvider">Manufacturing</asp:listitem>
<asp:listitem value="marketingProvider">Marketing</asp:listitem>
<asp:listitem value="salesProvider">Sales</asp:listitem>
</asp:dropdownlist>
</asp:wizardstep>
<asp:createuserwizardstep ID="Createuserwizardstep1" runat="server" title="Sign Up for Your New Account"></asp:createuserwizardstep>
</WizardSteps>
</asp:CreateUserWizard>
PS:
DropDownList 控件:DropDownList 控件用于创建下拉列表。控件中的每个可选项都是由 ListItem 元素定义的,该控件支持数据绑定。
ListItem 控件:该控件可创建列表中的一个项目。
当点击“下一步”按钮的时候,触发 NextButtonClick 事件。
protected void CreateUserWizard1_NextButtonClick(object sender,WizardNavigationEventArgs e)
{
if (CreateUserWizard1.ActiveStepIndex == 0)
{
CreateUserWizard1.MembershipProvider =divisionList.SelectedValue;
CreateUserWizard1.CreateUserStep.Title =String.Format("Create your new {0} account.",divisionList.SelectedItem.Text);
}
}