首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

7.2  TextBox的自动完成(AutoCompleteType)改良

TextBox控件有什么新鲜内容?嗯!有个看似很小但却常带来困扰的小“改良”,就是“自动完成”(AutoComplete)。何谓自动完成呢?也就是TextBox会记忆用户曾经输入过的文字,当下次再输入时就会自动提示相关字词,最常见的是用户登录网站时就会自动带出帐号密码。

这个功能在最早被发明时大家觉得很方便很好用,但随着信息安全意识的加强,这个功能有时不但不讨人喜欢,反而有点令人厌恶,为什么呢?现在无论是在家中、网吧还是公司,多人共享一台计算机的机会很多,而也是由于TextBox的自动完成在作祟的缘故,他人要看你的E-mail甚至假借您的帐号登录网页并非难事,只要在TextBox中选取你的帐号后,密码通常会一并自动带出。

关于这个恼人的问题,我接连被朋友问道该如何解决。在ASP.NET 2.0的TextBox控件内置的AutoCompleteType属性可以轻易解决这个问题,只要将TextBox的AutoCompleteType设置为“Disable”后,自动完成提示便完全不会出现了。

 范例7-4  设置TextBox控件AutoCompleteType自动完成属性

请参考TextBoxControl.asp程序,测试步骤如下:

  使用TextBox默认的自动完成

一般而言,各位设计的网页登录画面如图7-6所示。只要TextBox曾经输入过数据,下次在TextBox控件中双击就会出现相关文字,选取某个用户帐号后,密码也会被一并带出,安全性令人担忧。

图7-6  TextBox自动完成(默认)

  修改TextBox的自动完成功能

若您不想TextBox自动带出任何信息,可以将程序中TextBox控件的AutoCompleteType属性由默认的“None”改为“Disable”后,这样便无法执行任何的自动完成功能,也不会有任何文字自动显示,一举解决了原本恼人的安全性问题。取消自动完成后的HTML程序代码如下:

...略

<asp:Label ID="capUserName" runat="server" Text="帐号:"></asp:Label>

<asp:TextBox ID="txtUserName" runat="server" AutoCompleteType="Disabled" Width="150px"></asp:TextBox><br />

<asp:Label ID="capPassword" runat="server" Text="密码:"></asp:Label>

<asp:TextBox ID="txtPasswors" runat="server" AutoCompleteType="Disabled" TextMode="Password" Width="150px"></asp:TextBox><br />

<asp:Button ID="btnLogin" runat="server" Text="登录" />

...略

完成后请执行画面,当点击TextBox时将不会自动带出任何信息,因为其自动完成功能已被取消了。

AutoCompleteType是一个列举类型,其所有支持项目如下:

l   BusinessCity

l   BusinessCountryRegion

l   BusinessFax

l   BusinessPhone

l   BusinessState

l   BusinessStreetAddress

l   BusinessUrl

l   BusinessZipCode

l   Cellular

l   Company

l   Department

l   Disabled

l   DisplayName

l   Email

l   FirstName

l   Gender

l   HomeCity

l   HomeCountryRegion

l   HomeFax

l   Homepage

l   HomePhone

l   HomeState

l   HomeStreetAddress

l   HomeZipCode

l   JobTitle

l   LastName

l   MiddleName

l   None

l   Notes

l   Office

l   Pager

l   Search

自动完成目前只有要或不要两种,但大家都知道这不是好的二分法,因为中间理应存在其他的选择,而AutoCompleteType也有其成员选择,如您想让E-mail自动完成就选择“E-mail”,以此类推。

Web网页应用程序通过这个设置可强制所有用户都套用自动完成,自动完成功能设置在IE浏览器中什么地方?请选择【工具】→【选项】→【内容】→【自动完成】就可以调出如图7-7所示的自动完成设置画面,这个设置针对用户一个人有用。

图7-7  设定IE浏览器的自动完成功能

若您还想知道自动完成更多的信息,可以参考“Using AutoComplete in HTML Forms”这篇文章,网址如下:

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/forms/autocomplete_ovr.asp

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论