《《输入验证》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《输入验证》PPT课件.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第7章 输 入 验 证 本章重点本章重点n n RequiredFieldValidator控件 n n CompareValidator控件 n n RangeValidator控件n n RegularExpressionValidator控件 n n CustomValidator控件7.1 验证控件概述验证控件概述n n为为了了更更好好地地创创建建交交互互式式WebWeb应应用用程程序序、加加强强应应用用程程序序安安全全性性(例例如如防防止止脚脚本本入入侵侵等等),程程序序开开发发人员应该对用户输入的内容进行验证。人员应该对用户输入的内容进行验证。n nASP.NETASP.NET提提
2、供供了了一一系系列列输输入入验验证证控控件件,使使用用这这些些控件用户可以很方便地实现输入验证。控件用户可以很方便地实现输入验证。n nASP.NETASP.NET还还提提供供了了可可以以在在控控件件开开发发中中使使用用的的可可扩扩充充的的验验证证框框架架,开开发发人人员员可可以以通通过过使使用用这这个个验验证证框架来定制自己的验证控件。框架来定制自己的验证控件。7.1 验证控件概述验证控件概述7.1.1 7.1.1 验证控件的使用验证控件的使用n n要使用验证控件,只需要从工具箱里把验证控件拖入到页要使用验证控件,只需要从工具箱里把验证控件拖入到页面中即可。面中即可。n n每个验证控件都引用
3、页面上其他输入控件(这里只针对每个验证控件都引用页面上其他输入控件(这里只针对WebWeb控件)。在处理用户输入时,验证控件会对用户输入控件)。在处理用户输入时,验证控件会对用户输入进行测试,并设置属性以指示输入是否通过测试。在调用进行测试,并设置属性以指示输入是否通过测试。在调用了所有验证控件后,会在页面上设置一个属性以指示是否了所有验证控件后,会在页面上设置一个属性以指示是否出现验证检查失败。出现验证检查失败。n n此外,还可以把验证控件关联到验证组中,使得属于同一此外,还可以把验证控件关联到验证组中,使得属于同一组的验证控件可以一起进行验证,这样可以使验证组有选组的验证控件可以一起进行验
4、证,这样可以使验证组有选择地启用或禁用页面上相关控件的验证。择地启用或禁用页面上相关控件的验证。7.1 验证控件概述验证控件概述7.1.2 何时进行验证n n当用户向服务器提交页面之后,服务器将逐渐调用验证控件来检查用户的输入。若在任意输入控件中检测到验证错误,则该页面将自行设置为无效状态,以在代码运行之前测试其有效性。n n验证发生的时间是:已对页面进行了初始化,但还没有调用任何更改或单击事件处理程序。7.1 验证控件概述验证控件概述7.1.3 7.1.3 验证多个条件验证多个条件n n通常,每个验证控件只执行一次验证,但有时可能需要使通常,每个验证控件只执行一次验证,但有时可能需要使用多个
5、条件来检测用户的输入,例如,可能需要指定必须用多个条件来检测用户的输入,例如,可能需要指定必须的用户输入,同时将该用户的输入限制为只接受特定范围的用户输入,同时将该用户的输入限制为只接受特定范围内的数字。这时,可以将多个验证控件附加到页面上的一内的数字。这时,可以将多个验证控件附加到页面上的一个输入控件,并使用逻辑个输入控件,并使用逻辑ANDAND运算符来解析控件执行的验运算符来解析控件执行的验证,这样用户的输入只有通过所有的验证才能视为有效。证,这样用户的输入只有通过所有的验证才能视为有效。n n有时,可能要求用户输入满足的格式是多样的,例如,在有时,可能要求用户输入满足的格式是多样的,例如
6、,在提示输入电话号码时,可能允许用户输入本地号码、长途提示输入电话号码时,可能允许用户输入本地号码、长途号码等。这时需要使用号码等。这时需要使用RegularExpressionValidatorRegularExpressionValidator验证控件,验证控件,在验证条件中利用逻辑运算符在验证条件中利用逻辑运算符OROR连接多个验证条件,当连接多个验证条件,当然也可以编写自定义验证控件来实现这个功能。然也可以编写自定义验证控件来实现这个功能。7.1 验证控件概述验证控件概述7.1.4 显示错误信息n n验验证证控控件件通通常常在在页页面面中中是是不不可可见见的的,只只有有在在检检测测到到
7、验验证证错错误误时时它它才才会会显显示示指指定定的的错错误误信信息息,错错误误信息显示的方法有以下几种。信息显示的方法有以下几种。1.1.内联内联 2.2.摘要摘要 3.3.就地和摘要就地和摘要 4.4.自定义自定义 7.1 验证控件概述验证控件概述7.1.5 验证对象模型n n在在ASP.NETASP.NET中,可以通过使用由各个验证控件和中,可以通过使用由各个验证控件和页面公开的对象模型与验证控件进行交互。每个页面公开的对象模型与验证控件进行交互。每个验证控件都会公开自己的验证控件都会公开自己的IsValidIsValid属性,可以测试属性,可以测试该属性以确定该控件是否通过验证测试。该属
8、性以确定该控件是否通过验证测试。n n页面也有一个页面也有一个IsValidIsValid属性,该属性显示页面上的所属性,该属性显示页面上的所有验证控件的有验证控件的IsValidIsValid状态。状态。n n页面还提供一个包含页面上所有验证控件的列表页面还提供一个包含页面上所有验证控件的列表的的ValidatorValidator集合,通过这个集合依次检查单个验证集合,通过这个集合依次检查单个验证控件的状态。控件的状态。7.2 验证控件验证控件 7.2.1 RequiredFieldValidator控件n nRequiredFieldValidatorRequiredFieldValid
9、ator控件的功能是指定用户必须为某个在控件的功能是指定用户必须为某个在ASP.NETASP.NET网页上的特定控件提供信息。网页上的特定控件提供信息。n nRequiredFieldValidatorRequiredFieldValidator控件绑定到文本框控件,当文本框为控件绑定到文本框控件,当文本框为空时,该控件就会弹出空时,该控件就会弹出“输入为空输入为空”的提示信息。的提示信息。7.2 验证控件验证控件7.2.1 RequiredFieldValidator7.2.1 RequiredFieldValidator控件控件n nRequiredFieldValidatorRequir
10、edFieldValidator控件的使用一般是通过对其属性设置控件的使用一般是通过对其属性设置来完成的,该控件常用的属性来完成的,该控件常用的属性 :1.1.ControlToValidateControlToValidate:通过设置该属性为某控件的:通过设置该属性为某控件的IDID来把验来把验证控件绑定到需要验证的控件。证控件绑定到需要验证的控件。2.2.ErrorMessageErrorMessage:通过该属性来设置当验证控件无效时需要:通过该属性来设置当验证控件无效时需要显示的信息。显示的信息。3.3.ValidationGroupValidationGroup:绑定到验证程序所属
11、的组。:绑定到验证程序所属的组。4.4.TextText:当验证控件无效时显示的验证程序的文本。:当验证控件无效时显示的验证程序的文本。5.5.DisplayDisplay:通过该属性来设置验证控件的显示模式,该属性:通过该属性来设置验证控件的显示模式,该属性有三个值:有三个值:NoneNone表示验证控件无效时不显示信息;表示验证控件无效时不显示信息;StaticStatic表示验证控件在页面上占位是静态的,不能为其他空间所表示验证控件在页面上占位是静态的,不能为其他空间所占;占;DynamicDynamic表示验证控件在页面上占位是动态的,可以表示验证控件在页面上占位是动态的,可以为其他空
12、间所占,当验证失效时验证控件才占据页面位置。为其他空间所占,当验证失效时验证控件才占据页面位置。7.2 验证控件验证控件7.2.2 CompareValidator控件n nCompareValidatorCompareValidator控件的功能是验证某个输入控件里输入的控件的功能是验证某个输入控件里输入的信息是否满足事先设定的条件。信息是否满足事先设定的条件。n n例如,当输入某种商品的价格时,希望用户输入的值大于例如,当输入某种商品的价格时,希望用户输入的值大于0 0,这样利用,这样利用CompareValidatorCompareValidator控件绑定到商品价格文本框,控件绑定到商
13、品价格文本框,并设置适当的条件来控制操作人员误输入小于并设置适当的条件来控制操作人员误输入小于0 0的数值。的数值。7.2 验证控件验证控件7.2.2 CompareValidator7.2.2 CompareValidator控件控件n nCompareValidatorCompareValidator控件的使用一般也是通过对其属性设置来控件的使用一般也是通过对其属性设置来完成的,该控件常用的属性:完成的,该控件常用的属性:1.1.ControlToValidateControlToValidate:通过设置该属性为某控件的:通过设置该属性为某控件的IDID来把验来把验证控件绑定到需要验证的
14、控件。证控件绑定到需要验证的控件。2.2.ErrorMessageErrorMessage:通过该属性来设置当验证控件无效时需要:通过该属性来设置当验证控件无效时需要显示的信息。显示的信息。3.3.ValidationGroupValidationGroup:绑定到验证程序所属的组。:绑定到验证程序所属的组。4.4.TextText:当验证控件无效时显示的验证程序的文本。:当验证控件无效时显示的验证程序的文本。5.5.DisplayDisplay:通过该属性来设置验证控件的显示模式。:通过该属性来设置验证控件的显示模式。6.6.OperatorOperator:通过该属性来设置比较时所用到的运
15、算符。:通过该属性来设置比较时所用到的运算符。7.7.ValueToCompareValueToCompare:设置用来做比较的数据。:设置用来做比较的数据。8.8.ControlToCompareControlToCompare:设置用来做比较的控件,需要让验证:设置用来做比较的控件,需要让验证控件控制的控件和其他控件里的数据做比较就会用到这个控件控制的控件和其他控件里的数据做比较就会用到这个属性。属性。7.2 验证控件验证控件7.2.3 RangeValidator控件n nRangeValidatorRangeValidator控件的功能是验证用户对某个文本控件的功能是验证用户对某个文本
16、框的输入是否在某个范围之内,如输入的数值是框的输入是否在某个范围之内,如输入的数值是否在某两个数值之间,输入的日期是否在某两个否在某两个数值之间,输入的日期是否在某两个日期之间等。日期之间等。7.2 验证控件验证控件n n7.2.3 RangeValidator7.2.3 RangeValidator控件控件n nRangeValidatorRangeValidator控件的使用一般也是通过对其属性设置来完控件的使用一般也是通过对其属性设置来完成的,该控件常用的属性成的,该控件常用的属性 :n nControlToValidateControlToValidate:通过设置该属性为某控件的:通
17、过设置该属性为某控件的IDID来把验证来把验证控件绑定到需要验证的控件。控件绑定到需要验证的控件。1.1.ErrorMessageErrorMessage:通过该属性来设置当验证控件无效时需要:通过该属性来设置当验证控件无效时需要显示的信息。显示的信息。2.2.ValidationGroupValidationGroup:绑定到验证程序所属的组。:绑定到验证程序所属的组。3.3.TextText:当验证控件无效时显示的验证程序的文本。:当验证控件无效时显示的验证程序的文本。4.4.DisplayDisplay:通过该属性来设置验证控件的显示模式。:通过该属性来设置验证控件的显示模式。5.5.T
18、ypeType:通过该属性来设置按照哪种数据类型来进行比较。:通过该属性来设置按照哪种数据类型来进行比较。6.6.MaximumValueMaximumValue:设置用来做比较的数据范围上限。:设置用来做比较的数据范围上限。7.7.MinimumValueMinimumValue:设置用来做比较的数据范围下限。:设置用来做比较的数据范围下限。7.2 验证控件验证控件7.2.4 RegularExpressionValidator控件n nRegularExpressionValidatorRegularExpressionValidator控件的功能是验证用户控件的功能是验证用户输入的数据是
19、否符合正则表达式预定义的格式,输入的数据是否符合正则表达式预定义的格式,如输入的数据是否符合电话号码、电子邮件等的如输入的数据是否符合电话号码、电子邮件等的格式。格式。7.2 验证控件验证控件7.2.4 RegularExpressionValidator控件n nRegularExpressionValidatorRegularExpressionValidator控件的使用一般也是通控件的使用一般也是通过对其属性设置来完成的,该控件常用的属性过对其属性设置来完成的,该控件常用的属性 :1.1.ControlToValidateControlToValidate:通过设置该属性为某控件的:通
20、过设置该属性为某控件的IDID来把验证控件绑定到需要验证的控件。来把验证控件绑定到需要验证的控件。2.2.ErrorMessageErrorMessage:通过该属性来设置当验证控件无效:通过该属性来设置当验证控件无效时需要显示的信息。时需要显示的信息。3.3.ValidationGroupValidationGroup:绑定到验证程序所属的组。:绑定到验证程序所属的组。4.4.TextText:当验证控件无效时显示的验证程序的文本。:当验证控件无效时显示的验证程序的文本。5.5.DisplayDisplay:通过该属性来设置验证控件的显示模式。:通过该属性来设置验证控件的显示模式。6.6.V
21、alidationExpressionValidationExpression:通过该属性来设置利用正则:通过该属性来设置利用正则表达式描述的预定义格式。表达式描述的预定义格式。7.2 验证控件验证控件7.2.5 CustomValidator7.2.5 CustomValidator控件控件 n nCustomValidatorCustomValidator控件的功能是能够调用程序员在服务器端控件的功能是能够调用程序员在服务器端编写的自定义验证函数。有时使用现有的验证控件可能满编写的自定义验证函数。有时使用现有的验证控件可能满足不了程序员的需求,可能需要程序员自己来编写验证函足不了程序员的需
22、求,可能需要程序员自己来编写验证函数,而通过数,而通过CustomValidatorCustomValidator控件的服务器端事件可以把该控件的服务器端事件可以把该验证函数绑定到相应的控件。验证函数绑定到相应的控件。7.2 验证控件验证控件7.2.5 CustomValidator7.2.5 CustomValidator控件控件 n nCustomValidatorCustomValidator控件的使用一般也是通过对其属性设置来控件的使用一般也是通过对其属性设置来完成的,该控件常用的属性:完成的,该控件常用的属性:1.1.ControlToValidateControlToValidat
23、e:通过设置该属性为某控件的:通过设置该属性为某控件的IDID来把验来把验证控件绑定到需要验证的控件。证控件绑定到需要验证的控件。2.2.ErrorMessageErrorMessage:通过该属性来设置当验证控件无效时需要:通过该属性来设置当验证控件无效时需要显示的信息。显示的信息。3.3.ValidationGroupValidationGroup:绑定到验证程序所属的组。:绑定到验证程序所属的组。4.4.TextText:当验证控件无效时显示的验证程序的文本。:当验证控件无效时显示的验证程序的文本。5.5.DisplayDisplay:通过该属性来设置验证控件的显示模式。:通过该属性来设
24、置验证控件的显示模式。6.6.ValidationEmptyTextValidationEmptyText:通过该属性来判断绑定的控件为空:通过该属性来判断绑定的控件为空时是否执行验证,该属性为时是否执行验证,该属性为truetrue的含义是绑定的控件为空的含义是绑定的控件为空时执行验证,为时执行验证,为falsefalse含义则是绑定的控件为空时不执行验含义则是绑定的控件为空时不执行验证。证。7.7.IsValidIsValid:获取一个值来判断是否通过验证,:获取一个值来判断是否通过验证,truetrue表示通过验表示通过验证,而证,而falsefalse表示不通过验证。表示不通过验证。7
25、.3 定制验证控件定制验证控件n n为了提高开发的灵活性、满足不同为了提高开发的灵活性、满足不同WebWeb应用的需应用的需求,求,ASP.NETASP.NET内置了一个可扩充的验证框架。该内置了一个可扩充的验证框架。该框架定义了服务器端和客户端的基本实现规则。框架定义了服务器端和客户端的基本实现规则。开发人员可以使用这个可扩充的验证框架,根据开发人员可以使用这个可扩充的验证框架,根据应用需要设计自己的验证控件,从而实现新的设应用需要设计自己的验证控件,从而实现新的设计规则。计规则。n n自定义验证控件的实现分别需要在服务器端和客自定义验证控件的实现分别需要在服务器端和客户端进行设计,服务器端
26、用来实现基本的验证功户端进行设计,服务器端用来实现基本的验证功能,客户端验证则为了实现验证不刷新页面的功能,客户端验证则为了实现验证不刷新页面的功能。能。7.3 定制验证控件定制验证控件7.3.1 服务器端实现机制 n n为了实现自定义验证控件,必须了解ASP.NET提供的3个重要对象,它们是:。7.3 定制验证控件定制验证控件7.3.2 客户端实现机制n n客户端验证通过在向服务器发送用户输入前,检客户端验证通过在向服务器发送用户输入前,检查用户输入、改变一些页面效果来增强验证过程。查用户输入、改变一些页面效果来增强验证过程。出于安全考虑,如果某些用户通过手工提交恶意出于安全考虑,如果某些用户通过手工提交恶意数据,而绕过客户端验证,那么服务器端验证的数据,而绕过客户端验证,那么服务器端验证的执行将对保护应用程序的安全性,甚至为服务器执行将对保护应用程序的安全性,甚至为服务器的安全性提供有力支持。的安全性提供有力支持。n n客户端的验证机制其实就是编写一个能够验证输客户端的验证机制其实就是编写一个能够验证输入数据的函数,这个函数根据验证的结果返回验入数据的函数,这个函数根据验证的结果返回验证是否通过的标记,然后把这个函数绑定到服务证是否通过的标记,然后把这个函数绑定到服务器控件即可。器控件即可。