在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
ChangePassword 控件ChangePassword 控件允许用户修改密码,它查询用户输入的用户名和旧密码,然后要求用户输入一个新的密码并确认这个密码。 >
<MailDefinition From="[email protected]" Subject="Changes in your profile" Priority="High" /> <TitleTextStyle Font-Bold="true" Font-Underline="true" Font-Names="Verdana" ForeColor="Blue" /> </asp:ChangePassword> 这个控件也包含 MailDefinition 子元素,它的设置和 PasswordRecovery 控件一样,在完成修改后,如果这个 Web 应用程序配置了一个邮件服务器,它也可以自动发送邮件给用户。
ChangePassword 控件一样可以通过属性、样式和基于模板的方法定制,但需要两个模板:
ChangePasswordTemplate 模板的行为和之前介绍过的控件大相径庭。你只要添加了合适的 ID 值和 CommandName,它的默认行为就会被激活。
CreateUserWizard 控件CreateUserWizard 控件是登录控件中最强大的控件,它能让你几分钟之内就创建注册页面。这是一个双步骤的向导控件:输入普通的用户信息;显示确认信息。因为 CreateUserWizard 继承自 Wizard 控件,所以你可以任意添加向导步骤。 <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" BorderStyle="Ridge" BackColor="Aquamarine"> <TitleTextStyle Font-Bold="true" Font-Names="Vendana" /> <WizardSteps> <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> </asp:CreateUserWizardStep> <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> </asp:CompleteWizardStep> </WizardSteps> </asp:CreateUserWizard>
CreateUserWizard 控件默认外观也可以通过属性和样式来定制。实际上,它几乎包含了所有成员资格 API 控件的大部分字段。CreateUserWizardStep 步骤创建控件来收集必需的信息;ComplateWizardStep 步骤用来显示确认信息。你可以自己定制这两个步骤,但不能删除它们。使用模板时,你还要负责创建必需的控件: <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" BorderStyle="Ridge" BackColor="Aquamarine"> <TitleTextStyle Font-Bold="true" Font-Names="Vendana" /> <WizardSteps> <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> <ContentTemplate> <div align="center"><font face="Courier New"> User Name:<asp:TextBox runat="server" ID="UserName" /><br /> Password:<asp:TextBox runat="server" ID="Password" TextMode="Password" /><br /> Conform Password:<asp:TextBox runat="server" ID="ConformPassword" TextMode="Password" /><br /> Email:<asp:TextBox runat="server" ID="Email" /><br /> Security Question:<asp:TextBox runat="server" ID="Question" /><br /> Security Answer:<asp:TextBox runat="server" ID="Answer" /><br /> <asp:Literal runat="server" ID="ErrorMessage" EnableViewState="false" /> </font></div> </ContentTemplate> </asp:CreateUserWizardStep> <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> <ContentTemplate> Your account has been successfully created. <asp:Button ID="ContinueButton" CommandName="Continue" runat="server" Text="Continue" /> </ContentTemplate> </asp:CompleteWizardStep> </WizardSteps> </asp:CreateUserWizard>
因为这是一个向导控件,所以第一步骤不需要任何按钮,向导会自动显示一个下一步按钮。第一步中有些控件是必需的,另一些则是可选的:
一旦开始创建额外的向导步骤,就需要捕获事件并在事件函数中执行一些动作。例如,如果从用户那收集了一些额外的数据,就需要在某些地方存储这些信息,因此需要对数据库执行一些 SQL 语句。 下表列出了 CreateUserWizard 控件特有的事件(也继承了 Wizard 控件所有的事件):
CreatedUser 事件会在 CreateUserWizardStep 步骤成功之后立即触发。因此,如果想要在这个事件中保存额外的数据,必需在上面的步骤中收集这些信息。为了达到这个目的,只需在 <asp:CreateUserWizardStep> 标签之前放上其他向导步骤即可: <div> <!-- 在 CreateUserWizardStep 步骤之前插入额外步骤收集信息-->
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" BorderStyle="Ridge" BackColor="Aquamarine"> <TitleTextStyle Font-Bold="true" Font-Names="Vendana" /> <WizardSteps> <asp:WizardStep ID="NameStep" AllowReturn="true"> FirstName:<asp:TextBox ID="FirstNameText" runat="server" /><br /> LastName:<asp:TextBox ID="LastNameTex" runat="server" /><br /> Age:<asp:TextBox ID="AgeText" runat="server" /> </asp:WizardStep> <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> <ContentTemplate> <div align="center"><font face="Courier New"> User Name:<asp:TextBox runat="server" ID="UserName" /><br /> Password:<asp:TextBox runat="server" ID="Password" TextMode="Password" /><br /> Conform Password:<asp:TextBox runat="server" ID="ConformPassword" TextMode="Password" /><br /> Email:<asp:TextBox runat="server" ID="Email" /><br /> Security Question:<asp:TextBox runat="server" ID="Question" /><br /> Security Answer:<asp:TextBox runat="server" ID="Answer" /><br /> <asp:Literal runat="server" ID="ErrorMessage" EnableViewState="false" /> </font></div> </ContentTemplate> </asp:CreateUserWizardStep> <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> <ContentTemplate> Your account has been successfully created. <asp:Button ID="ContinueButton" CommandName="Continue" runat="server" Text="Continue" /> </ContentTemplate> </asp:CompleteWizardStep> </WizardSteps> </asp:CreateUserWizard> </div> 现在,就可以在 CreatedUser 事件被控件触发时把额外的信息存储到数据存储中了: protected void RegisterUser_CreatedUser(object sender, EventArgs e) { short age;
string firstName, lastName;
// Find the correct wizard step.
WizardStepBase step = null;
for (int i = 0; i < CreateUserWizard1.WizardSteps.Count; i++) { if (CreateUserWizard1.WizardSteps[i].Name == "NameStep") { step = CreateUserWizard1.WizardSteps[i]; break;
} } if (step != null) { firstName = ((TextBox)step.FindControl("FirstNameText")).Text;
lastName = ((TextBox)step.FindControl("LastNameText")).Text;
age = short.Parse(((TextBox)step.FindControl("AgeText")).Text); // Store the information
// This is just simple code you need to replace with code
// for really storing the information
System.Diagnostics.Debug.WriteLine(string.Format("{0} {1} {2}", firstName, lastName, age)); } } |
请发表评论