黑马程序员技术交流社区
标题:
Web窗体的高级控件(二)
[打印本页]
作者:
黑马_黄开潮
时间:
2012-12-16 17:55
标题:
Web窗体的高级控件(二)
登录状态控件(LoginStatus)
登录状态控件(LoginStatus)用于显式用户验证时的状态,LoginStatus包括“登录”和“注销”两种状态,对于LoginStatus控件的状态是由相应的Page对象的Request属性中的IsAuthenticated属性进行决定。开发人员能够直接将LoginStatus控件拖放在页面中,从而让用户能够通过相应的状态进行登录或注销操作,LoginStatus控件默认HTML代码如下所示。
<asp:LoginStatus ID="LoginStatus1" runat="server" />
上述代码就呈现了一个LoginStatus控件,LoginStatus控件默认的呈现形式是以文本的形式呈现的。
LoginStatus控件默认的呈现形式是以文本的形式呈现的。当用户没有在网站上进行登录操作时,该控件会呈现登录字样给用户以便用户进行登录操作,当用户登录后,LoginStatus控件会为用户提供注销字样以便用户进行注销操作。开发人员还能够为LoginStatus控件指定以图片形式进行登录和注销,LoginStatus控件常用的属性如下所示。
LoginImageUrl:设置或获取用于登录连接的图像URL。
LoginText:设置或获取用于登录连接的文本。
LogoutAction:设置或获取一个值用于用户从网站注销时执行的操作。
LogoutImageUrl:设置或获取一个值用于登出图片的显示。
LogoutPageUrl:设置或获取一个值用于登出连接的图像URL。
LougoutText:设置或一个值用于登出连接的文本。
TagKey:获取LoginStatus控件的HtmlTextWriterTag的值。
开发人员可以配置LoginImageUrl以及LogoutImageUrl属性进行登录、登出的图片显示,使用图片进行登录登出操作能够提高用户体验,示例代码如下所示。
<body>
<form id="form1" runat="server">
<div>
<asp:LoginStatus ID="LoginStatus1" runat="server" LoginImageUrl="~/login.jpg"
LogoutImageUrl="~/logout.jpg" />
</div>
</form>
</body>
上述代码指定了当用户没有登录时,相应的登录操作以图片的形式呈现在页面中,同样当用户登录后,注销操作也会以图片的形式呈现在页面中。
LoginStatus控件还包括两个常用事件,这两个事件分别为LoggingOut和LoggedOut。当用户单击注销按钮时会触发LoggingOut事件,开发人员能够在LoggingOut事件中编写相应的事件以清除用户的身份信息,这些信息包括Session、Cookie等。开发人员还能够在LoggedOut事件中规定在用户离开网站时所必须执行的操作。
密码恢复控件(PasswordRecovery)
当用户进行Web应用程序访问时,在有些情况下会丢失用户密码,这样就需要通过Web应用程序恢复自己的密码。在应用程序开发中,为了提高系统的安全性和用户信息的私密性,开发人员常常需要编写诸多代码来保存用户的信息并进行用户请求的检测。ASP.NET中提供了密码恢复控件以便开发人员能够在Web应用中轻松的能够让用户自行进行密码回复。
开发人员能够拖动一个PasswordRecovery控件在页面中,系统能够在主窗口中创建一个PasswordRecovery控件所必须的声明,示例代码如下所示。
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server">
</asp:PasswordRecovery>
开发人员能够使用PasswordRecovery控件进行相应的配置,包括自动太用格式、视图配置、转换成模板以及网站管理等,如图6-9所示。
对于PasswordRecovery控件而言,开发人员能够单击PasswordRecovery控件的属性进行相应的配置,例如选择自动套用格式,单击【自动套用格式】按钮进行格式的选取。
开发人员可以选择自动套用格式进行模板的编写,以提高用户体验,开发人员还能够自行编写模板进行PasswordRecovery控件的样式控制,选择相应的样式后,系统会自行生成样式控制代码,示例代码如下所示。
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server" BackColor="#F7F7DE"
BorderColor="#CCCC99" BorderStyle="Solid" BorderWidth="1px"
Font-Names="Verdana" Font-Size="10pt">
<TitleTextStyle BackColor="#6B696B" Font-Bold="True" ForeColor="#FFFFFF" />
</asp:PasswordRecovery>
开发人员能够通过修改上面的颜色进行样式控制。在PasswordRecovery控件中,除了能够自动套用和开发PasswordRecovery控件的格式外,开发人员还能够为PasswordRecovery控件相应的功能进行样式控制。PasswordRecovery控件包括三个基本功能,分别为【用户名】、【密码提示问题】和【成功模板】。
在用户使用PasswordRecovery控件进行密码恢复时,首先需要输入用户名进行用户名的匹配。如果用户名匹配后PasswordRecovery控件要求用户进行问题答案的填写。如果答案正确,PasswordRecovery控件能够为用户显示【成功模板】。
开发人员能还够分别为三个功能进行模板创建。在默认情况下,开发人员不能够进行模板的编辑,开发人员可以选择PasswordRecovery控件中【管理】菜单中的【转换为模板】选项进行相应的模板转换。
<td align="center" colspan="2" style="color: White; background-color: #6B696B; font-weight: bold;">
标识确认</td>
</tr>
<tr>
<td align="center" colspan="2">要接收您的密码,请回答下列问题。只有当填写了相应的问题后,
您的用户密码才能够被恢复</td>
</tr>
<tr>
<td align="right">用户名:</td>
<td>
<asp:Literal ID="UserName" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td align="right">问题:</td>
<td>
<asp:Literal ID="Question" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="AnswerLabel" runat="server" AssociatedControlID="Answer">答案:</asp:Label>
</td>
<td>
<asp:TextBox ID="Answer" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="AnswerRequired" runat="server"
ControlToValidate="Answer" ErrorMessage="需要答案。"
ToolTip="需要答案。" ValidationGroup="PasswordRecovery1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2" style="color: Red;">
<asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
</td>
</tr>
<tr>
<td align="right" colspan="2">
<asp:Button id="SubmitButton" runat="server" commandname="Submit"
text="提交" validationgroup="PasswordRecovery1" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</QuestionTemplate>
上述代码实现了【提问模板】中的模板信息和样式,当用户进入提问功能时会呈现该模板。当用户输入用户名时,系统会查找相应的用户信息并跳转到提问页面。如果用户回答自己提问的问题并回答正确后,PasswordRecovery控件会将密码发送到相应的邮箱中,而如果用户回答出错,PasswordRecovery控件就保留密码,以提高系统的安全性。
作者:
王晨
时间:
2012-12-16 17:59
这个不错,再配些图片就完美了,呵呵
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2