ASP .NET服务器端验证控件的使用
- 格式:doc
- 大小:27.00 KB
- 文档页数:4
WebApi实现Token验证基于令牌的认证我们知道WEB⽹站的⾝份验证⼀般通过session或者cookie完成的,登录成功后客户端发送的任何请求都带上cookie,服务端根据客户端发送来的cookie来识别⽤户。
WEB API使⽤这样的⽅法不是很适合,于是就有了基于令牌的认证,使⽤令牌认证有⼏个好处:可扩展性、松散耦合、移动终端调⽤⽐较简单等等,别⼈都⽤上了,你还有理由不⽤吗?下⾯我们花个20分钟的时间来实现⼀个简单的WEB API token认证:Step 1:安装所需的NuGet包:打开NuGet包管理器控制台,然后输⼊如下指令:Install-Package Microsoft.AspNet.WebApi.Owin -Version 5.1.2Install-Package Microsoft.Owin.Host.SystemWeb -Version 2.1.0Install-Package Microsoft.AspNet.Identity.Owin -Version 2.0.1Install-Package Microsoft.Owin.Cors -Version 2.1.0Install-Package EntityFramework -Version 6.0.0Step 2 在项⽬根⽬录下添加Owin“Startup”类1using System;2using System.Web.Http;34using Owin;5using Microsoft.Owin;6using Microsoft.Owin.Security.OAuth;7using SqlSugar.WebApi;89 [assembly: OwinStartup(typeof(WebApi.Startup))]10namespace WebApi11 {12public class Startup13 {14public void Configuration(IAppBuilder app)15 {16 HttpConfiguration config = new HttpConfiguration();17 ConfigureOAuth(app);1819 WebApiConfig.Register(config);20 eCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);21 eWebApi(config);22 }2324public void ConfigureOAuth(IAppBuilder app)25 {26 OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()27 {28 AllowInsecureHttp = true,29 TokenEndpointPath = new PathString("/token"),30 AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),31 Provider = new SimpleAuthorizationServerProvider()32 };33 eOAuthAuthorizationServer(OAuthServerOptions);34 eOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());35 }36 }37 }View CodeStep 3:在项⽬根⽬录下添加验证类 SimpleAuthorizationServerProvider,为了简单⽤户的验证部分我们省略掉;1using System.Threading.Tasks;2using System.Security.Claims;3using Microsoft.Owin.Security.OAuth;45namespace WebApi6 {7///<summary>8/// Token验证9///</summary>10public class SimpleAuthorizationServerProvider : OAuthAuthorizationServerProvider11 {12public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)13 {14await Task.Factory.StartNew(() => context.Validated());15 }1617public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)18 {19await Task.Factory.StartNew(() => context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }));20/*21 * 对⽤户名、密码进⾏数据校验22 using (AuthRepository _repo = new AuthRepository())23 {24 IdentityUser user = await _repo.FindUser(erName, context.Password);2526 if (user == null)27 {28 context.SetError("invalid_grant", "The user name or password is incorrect.");29 return;30 }31 }*/3233var identity = new ClaimsIdentity(context.Options.AuthenticationType);34 identity.AddClaim(new Claim("sub", erName));35 identity.AddClaim(new Claim("role", "user"));3637 context.Validated(identity);3839 }40 }41 }View CodeStep 4:让CORS起作⽤在 Web API中启⽤OAuth的Access Token验证⾮常简单,只需在相应的Controller或Action加上[Authorize]标记1 [Authorize]2 [HttpGet, Route("product/getList")]3public List<Entity.Sys_User> GetProductList()4 {5throw new NotImplementedException();6 }View CodeStep 5 : 请求 Token获取token, POST http://localhost:23477/token参数BODY x-www-form-urlencoded 格式:grant_type=passwordusername=adminpassword=123456返回状态200 结果为Step 5 调⽤api只要在http请求头中加上Authorization:bearer Token就可以成功访问API就成功了:GET http://localhost:58192/api/testapi/testapiAuthorization : bearer T5jF97t5n-rBkWcwpiVDAlhzXtOvV7Jw2NnN1Aldc--xtDrvWtqLAN9hxJN3Fy7piIqNWeLMNm2IKVOqmmC0X5_s8MwQ6zufUDbvF4Bg5OHoHTKHX6NmZGNrU4mjpCuPLtSbT5bh_gFOZHoIXXIKmqD3Wu1MyyKKNhj9XPEIkd9bl4E9AZ1wAt4dyUxmPV结果为:。
authorizationhandler authorizeattribute AuthorizationHandler 和AuthorizeAttribute 是 Core 中用于身份验证和授权的两个关键组件。
在这篇文章中,我们将逐步介绍这两个组件的作用、使用方式以及它们在构建安全的Web 应用程序中的重要性。
第一步:理解身份验证和授权的概念在开始介绍AuthorizationHandler 和AuthorizeAttribute 之前,我们首先需要明确身份验证和授权这两个概念的含义。
身份验证是用于验证用户身份的过程,通过用户名和密码等凭据来确认用户是谁。
一旦用户的身份被验证通过,系统就会生成一个身份凭证,用于后续的请求验证。
授权是用于确定用户是否具有执行特定操作或访问特定资源的权限。
系统会根据用户的身份验证凭证和授权策略来决定用户是否有权进行某个操作。
第二步:介绍AuthorizationHandlerAuthorizationHandler 是一个自定义的类,用于定义和实现授权策略。
它实现了Microsoft.AspNetCore.Authorization.IAuthorizationHandler 接口,并包含一个HandleRequirementAsync 方法,用于处理授权要求。
AuthorizationHandler 可以定义不同的授权要求,并根据一组规则来验证用户是否满足这些要求。
例如,可以使用AuthorizationHandler 来验证用户是否具有特定的角色、是否满足自定义的业务逻辑等。
第三步:使用AuthorizationHandler要使用AuthorizationHandler,我们首先需要将其注册到 Core 应用程序的服务集合中。
可以在Startup.cs 文件的ConfigureServices 方法中添加以下代码:csharpservices.AddScoped<IAuthorizationHandler, MyAuthorizationHandler>();在上述代码中,MyAuthorizationHandler 是我们自定义的AuthorizationHandler 类,可以根据实际情况进行替换。
实验三 服务器控件实验目的:●掌握 4.0页面时间的处理过程●熟练应用基本的Web服务器控件实验内容及要求:在网站的用户注册页面,通常都可以通过下列列表框动态选择用户的头像。
本实验就是先这样的功能。
要求如下:●当“头像”下拉列表中的选项发生改变时,网页上显示的头像也随之改变。
●单击“提交”按钮,将用户选择的头像信息显示在Label控件上。
实验步骤:(1)启动Visual Studio 2010,创建一个 WEB网站,命名为“课堂练习2”。
(2)在网站根目录下创建一个名为Default.aspx的窗体文件。
(3)设计Web窗体。
切换到设计视图,想页面添加1个Image控件、1个Button 控件、一个DropDownList控件和1个label控件。
(4)设置属性。
(5)设置DropDownList1中的列表项内容。
将鼠标移到DropDownList1控件上,其上方会出现一个向右的小三角。
单击它,弹出“DropDownList任务”列表。
选择列表中的“编辑项”命令,弹出如图所示的“ListItem集合编辑器”对话框。
单击“添加”按钮可像“成员”列表中添加选项,并在“属性”列表中设置选项的Text属性和Value属性,其中,Text属性是列表框控件中显示的文本;而Value属性为对应头像的路径。
最后单击“确定”按钮。
如果要将选项设置为选中的状态,可以将Selected属性设置为true。
(6)编写下拉列表事件代码如下:(7)编写“提交”按钮被单击是执行的时间代码如下:(8)浏览建立的Web窗体进行测试。
实验四 网站设计实验目的:●熟练掌握各种导航控件的使用●能够在网站中创建母版页和内容页实验内容及要求:合理创建商场积分卡管理系统的站点地图Web.sitemap。
要求如下:●站点地图的层次要清晰●编写的代码必须符合站点地图的规范要求实验步骤(1)启动Visual Studio2010,创建一个 Web网站,命名为“课堂练习1”(2)在网站根目录下创建一个名为Web.sitemap的站点地图文件(3)在Web.sitemap的站点地图文件中编写代码如下实验五访问数据库实验目的:●在SQL Server 2008中创建数据库●掌握的操作对象●熟练运用数据访问技术对数据库进行操作实验内容及要求:(1)在SQL Server 2008中创建数据库和数据表。
第7章 身份验证与授权《》学习目标/Target掌握添加 Core Identity框架的方式,能够实现添加Core Identity框架的功能掌握实现身份验证功能的方式,能够独立实现身份验证功能掌握实现用户授权功能的方式,能够独立实现用户授权功能章节概述/ Summary在 Core项目的网站中,我们通常会用到身份验证与授权功能来限制用户是否可以登录,是否有权限访问当前页面等。
本章我们就来学习如何在网站中进行身份验证与授权。
情景导入/ Lead-in王五是一家互联网公司的网站开发人员,当他在进行 ASP 网站开发时,网站中涉及用户的注册与登录以及授权情况。
王五经过分析,得出的结论是首先要在网站中通过 Core Identity 框架创建注册与登录的视图页面,然后通过 Authorization 框架对用户进行身份验证与授权,授权后用户就可以访问指定的页面。
身份验证与授权操作的实现过程如下图所示。
目录/Contents01 02 03添加 Core Identity框架身份验证用户授权7.1添加 Core Identity框架先定一个小目标!了解 Core Identity框架简介,能够说出什么是 Core Identity框架了解 Core Identity框架的安全性简介,能够说出 Core Identity框架的安全性内容 Core Identity框架简介 Core Identity框架是一套用户管理系统,不仅可以提供注册登录的功能,还能在数据库中对存储的密码进行安全加密,对邮箱进行认证,账户锁定以及双因素身份验证的同时也提供了身份验证(Authentication)和授权(Authorization)两个功能,身份验证的目的是让系统准确地分辨出哪个用户在登录网站,而授权则是来管理用户的权限,比如给部分用户加上访问权限,通过这种权限的设置来限制用户对某些网站资源的访问或限制打开某些页面。
ASP.NET2.0中数据验证控件的应用桑国珍【摘要】本文针对ASP.NET中几种常用的数据验证控件的使用方法进行比较和总结,并结合实例介绍了在ASP.NET中页面中几种据验证控件的组合应用使用。
【期刊名称】《黑龙江科技信息》【年(卷),期】2011(000)033【总页数】2页(P79-79,169)【关键词】ASP.NET;验证控件;有效性【作者】桑国珍【作者单位】渭南师范学院,陕西渭南714000;统计科学与社会计算研究所,陕西渭南714000【正文语种】中文【中图分类】TP393.031 概述通常在Web应用程序中,会接受用户输入的大量的数据。
在大量的输入数据中,可能会有很多无效数据。
一般来说,使用者输入数据的时候,一定要执行数据验证的工作。
数据验证是一种限制使用者输入的限制,可以确定使用者输入的数据是正确的,或是强迫使用者一定要输入数据。
先执行数据验证比输入错误的数据后,再让数据库响应一个错误信息有效率;也可以确保使用者输入的数据是一个有效值,这些功能,可以由数据验证控件来完成。
2 验证控件的用法为用户输入创建网页的一个重要目的就是检查用户输入的信息是否有效。
提供了一组验证控件,用于提供一种易用但功能强大的检错方式,并在必要时向用户显示错误信息。
共有六种验证控件,分别如下:RequiredFieldValidator、CompareValidator、RangeValidator、RegularExpressionValidator、CustomValidator、ValidationSummary。
数据验证控件都使用ControlToValidate属性关联要被验证的控件;ErrorMessage属性是验证不通过时显示的错误信息;Display:错误信息的显示方式;Static表示控件的错误信息在页面中占有肯定位置;Dymatic表示控件错误信息出现时才占用页面控件;None表示错误出现时不显示,但是可以在ValidatorSummary中显示;占位符:表示Display为Static时,错误信息占有“占位符”那么大的页面空间。
第4章补充内容4.4 验证控件 提供了强大的验证控件,它可以验证服务器控件中用户的输入,并在验证失败的情况下显示一条自定义错误消息。
验证控件直接在客户端执行,用户提交后执行相应的验证无需使用服务器端进行验证操作,从而减少了服务器与客户端之间的往返过程。
4.4.1 表单验证控件(RequiredFieldValidator)在实际的应用中,如在用户填写表单时,有一些项目是必填项,例如用户名和密码。
在传统的ASP中,当用户填写表单后,页面需要被发送到服务器并判断表单中的某项HTML 控件的值是否为空,如果为空,则返回错误信息。
在 中,系统提供了RequiredFieldValidator 验证控件进行验证。
使用RequiredFieldValidator 控件能够指定某个用户在特定的控件中必须提供相应的信息,如果不填写相应的信息,RequiredFieldValidator 控件就会提示错误信息,RequiredFieldValidator 控件示例代码如下所示。
<body><form id="form1" runat="server"><div>姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"ControlToValidate="TextBox1" ErrorMessage="必填字段不能为空"></asp:RequiredFieldValidator><br />密码:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /><asp:Button ID="Button1" runat="server" Text="Button" /><br /></div></form></body>在进行验证时,RequiredFieldValidator控件必须绑定一个服务器控件,在上述代码中,验证控件RequiredFieldValidator 控件的服务器控件绑定为TextBox1,当TextBox1 中的值为空时,则会提示自定义错误信息“必填字段不能为空”,如图5-53 所示。
c#textbox正则表达式⽂本框只允许输⼊数字(验证控件RegularEx。
<input type="text" name="test" onKeyUp="test1.value=(this.value=this.value.replace(/\D/g,'').substring(0,6)).substring(0,3)" > <br /><input name="test1" type="text" >⽤Up和Down有区别只能输⼊数字、字母、下划线<input ID="txtShopNumber" runat="server" class="input_text" maxlength="8" onkeyup="value=value.replace(/[^(\-)\w\.\/]/ig,'')"/>常⽤的正则表达式只能输⼊数字:“^[0-9]*$”只能输⼊n位的数字:“^\d{n}$”只能输⼊⾄少n位数字:“^\d{n,}$”只能输⼊m-n位的数字:“^\d{m,n}$”只能输⼊零和⾮零开头的数字:“^(0|[1-9][0-9]*)$”只能输⼊有两位⼩数的正实数:“^[0-9]+(.[0-9]{2})?$”只能输⼊有1-3位⼩数的正实数:“^[0-9]+(.[0-9]{1,3})?$”只能输⼊⾮零的正整数:“^\+?[1-9][0-9]*$”只能输⼊⾮零的负整数:“^\-[1-9][0-9]*$”只能输⼊长度为3的字符:“^.{3}$”只能输⼊由26个英⽂字母组成的字符串:“^[A-Za-z]+$”只能输⼊由26个⼤写英⽂字母组成的字符串:“^[A-Z]+$”只能输⼊由26个⼩写英⽂字母组成的字符串:“^[a-z]+$”只能输⼊由数字和26个英⽂字母组成的字符串:“^[A-Za-z0-9]+$”只能输⼊由数字、26个英⽂字母或者下划线组成的字符串:“^\w+$”验证⽤户密码:“^[a-zA-Z]\w{5,17}$”正确格式为:以字母开头,长度在6-18之间,正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
requiredfieldvalidator控件的用法requiredfieldvalidator控件是 Web表单控件之一,用于验证表单输入是否为空。
当用户提交表单时,如果控件设定的文本框(或其他输入控件)为空,则会显示一个错误信息。
使用requiredfieldvalidator控件可以有效地减少表单数据错误或信息缺失的情况,提高表单数据的准确性和完整性。
requiredfieldvalidator控件的使用方法如下:1. 在ASPX页面上引入requiredfieldvalidator控件,可以通过Visual Studio的工具箱快速拖拽到页面上。
2. 在Web表单中添加需要验证的输入控件,如TextBox。
3. 在对应的输入控件上关联requiredfieldvalidator控件,如下所示:```html<asp:TextBox ID="txtName" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"ErrorMessage="姓名不能为空!"ControlToValidate="txtName"></asp:RequiredFieldValidator>```控件属性解释:`ControlToValidate`:该属性用于指定要验证的输入控件。
`ErrorMessage`:该属性用于指定验证失败时要显示的错误消息。
4. 可以为类型不同的控件添加不同的验证器,来满足表单的各个输入要求。
除了`requiredfieldvalidator`,还有其他验证控件可以使用,如`comparevalidator`、`rangevalidator`、`regexpvalidator`等,可以根据表单的实际情况进行选择和使用。
实验报告题目:服务器控件院系:计算机科学与工程学院【实验题目】服务器控件【实验目的】1.熟悉用户控件的使用。
2.熟悉导航控件的使用。
3.掌握母版页的使用。
【实验内容】设计一个个人情况调查程序,程序启动后显示如图所示的页面。
用户在填写了姓名、选择了性别、喜爱的歌手、居住城市、个人爱好后单击“提交”按钮后,屏幕显示用户填写或选择的数据信息。
若用户没填写姓名就单击“提交”按钮,屏幕显示出错提示信息;若用户没有选择“爱好”项目,单击“提交”按钮,“爱好”项目栏中显示“真可惜,你没有任何爱好!”。
(1)打开Visual Studio 2010创建一个网站,在Default.aspx页面上进行页面的设计,此时可以切换到设计视图,也可以使用拆分视图方便对照。
(2)设计Web页面Web页面中标题“个人情况调查”为图片格式,在下面已经给出,请同学们右键单击下面的图片,保存到本地硬盘,再在程序中通过ImageMap控件添加进页面。
附件:(3)设置对象属性Web页面中需包含以下控件,Label控件、TextBox控件、Button控件、LinkButton控件、ImageMap控件、RadioButton控件、DropDownList控件、ListItem 控件、RadioButtonList控件、CheckBoxList控件等控件,并设置好每个对象的属性。
开发界面如图3-1所示。
图3-1 程序开发界面(4)编写事件代码(5)运行和调试程序程序最终运行界面如图3-2所示。
图3-2 程序运行界面【实验代码】<%@Page Language="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default" %><!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title>服务器控件的使用</title></head><body style="text-align: left"><form id="form1"runat="server"><div style="text-align: left"><asp:ImageMap ID="ImageMap1"runat="server"Height="100px"Width="470px"ImageUrl="~/exp-3.jpg"></asp:ImageMap><span style="font-size: 16pt"><strong><br/></strong></span><table border="1"style="text-align: left"><tr><td style="width: 125px">姓名<asp:TextBox ID="txtName"runat="server"Width="77px"></asp:TextBox></td><td colspan="2"style="width: 329px; text-align: left"> 性别<asp:RadioButton ID="radSex1"runat="server"Checked="True"GroupName="seleSex"Text="男"/><asp:RadioButton ID="radSex2"runat="server"GroupName="seleSex"Text="女" /></td></tr><tr><td style="width: 125px">你喜爱的歌手是</td><td colspan="2"style="width: 329px; text-align: left"> <asp:DropDownList ID="dropSinger"runat="server"><asp:ListItem>五月天</asp:ListItem><asp:ListItem>李宗盛</asp:ListItem><asp:ListItem>梁静茹</asp:ListItem><asp:ListItem>张惠妹</asp:ListItem><asp:ListItem>汪峰</asp:ListItem></asp:DropDownList></td><tr><td style="width: 125px">你家住哪里</td><td colspan="2"style="width: 329px; text-align: left"><asp:RadioButtonList ID="radlHome"runat="server"RepeatColumns="4"><asp:ListItem Selected="True">长春</asp:ListItem><asp:ListItem>吉林</asp:ListItem><asp:ListItem>沈阳</asp:ListItem><asp:ListItem>其他城市</asp:ListItem></asp:RadioButtonList></td></tr><tr><td style="width: 125px; height: 26px">你的爱好是</td><td colspan="2"style="width: 329px; height: 26px; text-align: left"><asp:CheckBoxList ID="chklLike"runat="server"RepeatColumns="4"><asp:ListItem>篮球</asp:ListItem><asp:ListItem>足球</asp:ListItem><asp:ListItem>上网</asp:ListItem><asp:ListItem>音乐</asp:ListItem></asp:CheckBoxList></td></tr><tr><td style="width: 125px; height: 26px"> </td><td colspan="2"style="width: 329px; height: 26px; text-align: left"><asp:Button ID="btnOK"runat="server"OnClick="btnOK_Click"Text="提交" /></td></tr></table><br/></div> <asp:Label ID="lblName"runat="server"></asp:Label><br/><br/> <asp:Label ID="lblHome"runat="server"></asp:Label><br/> <br/> <asp:Label ID="lblLike"runat="server"></asp:Label><br/><br/><br/></form></body></html>using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class_Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){this.Title = "个人情况调查";txtName.Focus();}protected void btnOK_Click(object sender, EventArgs e){if (txtName.Text == ""){lblName.Text = "<b>你必须输入姓名!</b>";return;}string strSex="",strLike="";int i;if (radSex1.Checked){strSex = "男";}else{strSex = "女";}for (i = 0; i <= chklLike.Items.Count - 1; i++){if (chklLike.Items[i].Selected){strLike = strLike + chklLike.Items[i].Text + ",";}}strLike = strLike.Remove(strLike.Length - 1, 1);lblName.Text = txtName.Text + "," + strSex+ "," + "你喜欢的歌手是:" + dropSinger.Text;lblHome.Text = "你家住在:" + radlHome.SelectedItem.Text;if (strLike == ""){strLike = "真可惜,你没有任何爱好!";}else{strLike = "你的爱好是:" + strLike;}lblLike.Text = strLike;}}【实验结果】【实验心得】通过本次实验,我知道了如何通过创建服务器控件,加强了对控件的掌握,同时也加强了我对界面布局的掌握。
验证控件的使用二(RequiredFieldValidator)RequiredFieldValidator 用于验证输入控件中的内容是否为空。
如果为空,则会显示错误信息,提示用户必须填写该字段。
这个控件非常常用,可以用于验证文本框、下拉列表、复选框等输入控件。
```html<asp:TextBox ID="txtName" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="rfvName" runat="server" ControlToValidate="txtName"```在这个例子中,我们设置了一个 TextBox 控件和一个RequiredFieldValidator 控件。
RequiredFieldValidator 的ControlToValidate 属性指定了要验证的输入控件,这里是 txtName。
ErrorMessage 属性指定了验证失败时要显示的错误信息。
“*” 是一个特殊字符,它可以显示在验证控件的旁边,并起到提示用户必填的作用。
同时,我们还设置了一个 ValidationGroup 属性,用于指定该验证控件所属的分组。
这个分组可以用于对表单中的不同部分进行独立的验证。
```html<asp:Button ID="btnSubmit" runat="server" Text="提交"OnClick="btnSubmit_Click" CausesValidation="true"ValidationGroup="vgForm" />```在按钮的点击事件中,我们可以使用 Page 的 IsValid 属性来判断整个表单中的所有验证是否通过。
在中验证控件如下:1、RequiredFieldValidator:验证一个必填字段,如果这个字段没填,那么,将不能提交信息。
2、CompareValidator:比较验证。
比较两个字段值是否相等,如密码和确认密码两个字段是否相等;比较一个字段与一个具体的值。
3、RangeValidator:范围验证。
验证一个字段是否在某个范围中,如成绩字段要是0~100范围中。
4、RegularExpressionValidator:正则表达式验证。
它根据正则表达式来验证用户输入字段的格式是否合法,如电子邮件、身份证、电话号码等。
5、CustomValidator:在运行定制的客户端JavaScript或VBScript函数时,可以使用这个控件。
下面,我们来看这些控件的使用1、RequiredFieldValidator(必填字段验证)的使用RequiredFieldValidator控件使用的标准代码如下:1<asp:RequiredFieldValidator ID="Validator_Name" runat="Server" ControlToValidate="要检查的控件名"2 ErrorMessage="出错信息" Display="Static|Dymatic|None">3占位符4</asp:RequiredFieldValidator>在以上标准代码中:ControlToValidate:表示要进行检查控件ID;ErrorMessage:表示当检查不合法时,出现的错误信息;Display:错误信息的显示方式;Static表示控件的错误信息在页面中占有肯定位置;Dymatic表示控件错误信息出现时才占用页面控件;None表示错误出现时不显示,但是可以在ValidatorSummary中显示;占位符:表示Display为Static时,错误信息占有"占位符"那么大的页面空间;现在,让我们看一个实例:1<asp:TextBox ID="t xtName" runat="Server"/>2<asp:RequiredFieldValidator ID="Validator1" runat="Server" ControlToValidate="t xtNa me"3 ErrorMessage="姓名必须输入" Display="Static">4*姓名必须输入5</asp:RequiredFieldValidator>在以上例子中,检查txtName控件是否有输入,如果没有,显示错误信息"姓名必须输入"。
服务器端验证控件的使用
服务器控件的使用:当向Web页面中增加一个有效性验证控件时,控件就会呈现在客户端验证相关控件有效性的Javascript。
提供了6个有效性验证控件,其中5个是有效性控件,Cust-omvalidator控件是自定义控件。
下面介绍六个有效性验证控件的使用:
1.RequestFieldValidator控件:非空验证控件
(1)设计页面
设置属性:ControlToValidate和ErrorMessage。
其中ControlTo-Validate是需要验证有效性的控件ID,ErrorMessage是当验证出现错误的时候,出现在页面上的文本信息。
(2)拓展:dropdown的非空验证
dropdown默认的话是“请选择”的选项被选中,selected=true,其他都是false。
要使用非空验证必须设置InitialValue=”请选择”。
parevalidator控件:比较控件
(1)设计页面
(2)设置属性:ControlToCompare和Cont-rolToValidate,分别填入需要验证的控件ID
默认属性Operator是equal。
用来比较两个文本框的内容。
但是也可以对数据类型进行检查。
如设置operator=DataType Check。
然后设置类型type=date输入错误的日期格式就会出错误。
3.RangeValidator控件:范围验证控件
设置属性:MaximumValue和Minimum-Value,分别是控件可接受的最大值和最小值。
在本题中,用户名的最大值是z,年龄的最大值是150。
用户名的最小值是a,年龄的最小值是0。
注意type的类型,默认是string ,当对数字进行范围验证,需要设置type=int。
4.RegurExpressValidator控件
正则表达式验证控件,该控件功能非常强大,控件允许检查可预知的字符列表,如身份证号,电子邮件地址,电话号码或邮政编码等。
设置属性:
5.ValidatorSummary控件:错误总结控件
在程序中,如果页面比较庞大而且需要验证的控件比较多,用户在观察错误信息时可能会出现混乱。
ValidatorSummay解决了这一个难题。
如果不输入任何内容就提交,那么Error-Message的错误信息显示在ValidationSummary控件中,而页面主体显示Text的信息。
如下:
(1)表中属性showmessagebox的值为Boolean型,如果设置true,页面上的错误信息不在页面中显示,而是以弹出对话框的形式来显示错误信息。
Showsummary属性值同样为boolean型,如果设置其值为false,则错误汇总控件不显示汇总错误信息,反之在页面中显示错误信息。
另外一个:验证汇总中可以设置headertext,表示验证摘要上方显示标题文本。
(2)ErrorMessage和Text属性通常需要搭配使用。
所不同的是Text属性的错误信息一般是简短(如“必填”),ErrorMessage属性的信息应该识别有错误的表单字段(如“用户名必须填!”)
6.Customvalidator控件:自定义验证控件
(1)该控件允许用户根据程序设计需要自定义控件的验证方法。
(2)用户自定义验证控件里面最重要的是args.Value和args.IsValid,args 是函数的参数。
Value和IsValid都是args的属性,一定要注意区别大小写。
args.Value:获取要验证的用户输入内容,比如文本框的内容args.IsValid:关联的控件是否通过验证,通过验证通过,就不会出现ErrorMessage的内容。
(3)用户输入是否能被3整除
拓展1:要求长度大于等于3位和输入内容必须能被3整除
长度必须大于等于3的代码如下:
protected void CustomValidator2_ServerValidate(object source,ServerValidateEventArgs args)
if(args.Value.Length>=3)
args.IsValid=true;
else
args.IsValid=false;
}
拓展2:CustomValidator是用户自定义的验证控件,用来响应用户自定义的验证。
可以是JS的客户端函数,也可以是写在后台代码中的服务端验证函数重点内容(两个属性):
OnServerValidate:规定被执行的服务器端验证脚本函数的名称ClientValidationFunction:规定用于验证的自定义客户端脚本函数的名称最终效果如下:
代码页面:
客户端验证:
function Clientv(source,args){
args.IsValid = (args.Value == “客户端”);
}
如果将args.Value替换为TextBox1.Text会出现TextBox1未定义。
所有必须用:
Var text=document.getElementByld(‘’)将args.Value替换为text.value。
服务器验证:
protectedvoidCustomValidator2_ServerValidate(objectsource,ServerValidateEventArgs args)
{
args.IsValid = (args.Value == “服务端”)。
}。