基于.net的用户定义验证控件的应用分析
2020-11-30曾凡秩
曾凡秩
摘 要:在应用.net和c#进行应用系统开发时经常会用到验证控件,其中的CustomValidator验证控件,除了配置好基本的参数外,还要配置特殊的参数,同时还要自己编程实现验证的功能。本文就如何用此验证控件实现用户自己的特殊验证(比如在注册时用户名已存在的验证)进行了探讨。
关键词:.net 自定义验证控件 CustomValidator
中图分类号:G202 文献标识码:A 文章编号:1003-9082(2020)10-00-01
在应用.net和c#进行应用系统开发时经常会用到Required Field Validator等验证控件,除Custom Validator的其他控件,只要设置好相关参数后,一般都能起到正常验证数据的作用。而Custom Validator验证控件,除了配置好基本的参数外,还要配置特殊的参数,同时还要自己编程实现验证的功能。对CustomValidator控件如何引用、如何设置相关参数以及编程实现验证,同时达到和常规验证控件相似的效果等进行探讨和验证。
一、在TextBox数据控件后添加验证控件
如下图在该网页实现通过调用数据库来实现用户功能,在用户名的右边加入用户验证控件,用来判断要注册的用户名是否存在,若存在,则不能注册。
1.在注册页面中与自定义验证控件相关的页面代码如下:
用户名: ontextchanged=”txtName_TextChanged”>
ControlToValidate=”txtName” onservervalidate=”CustomValidator1_ServerValidate”>
2.该验证控件的后台代码如下:
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{String connStr = ConfigurationManager.ConnectionStrings[“link2”].ToString();
SqlConnection conn = new SqlConnection(connStr); conn.Open();
string sqlStr = “select count(*) from manage where userName=” + txtName.Text + “”;
SqlCommand sc = new SqlCommand(sqlStr, conn);
int num = int.Parse(sc.ExecuteScalar().ToString());
conn.Close(); args.IsValid = true;
if (num > 0) args.IsValid = false; }
3.在用户名数据框中输入名字时要以上能够验证用户名是否存在,则要给该数据控件添加一个事件txtName_TextChanged,该事件引发验证,代码如下:
protected void txtName_TextChanged(object sender, EventArgs e)
{具体验证代码同上面斜体字部分。
CustomValidator1.IsValid = true;
if (num > 0) CustomValidator1.IsValid = false; }
4.注册功能代码:
protected void btnRegister_Click(object sender, EventArgs e)
{if (Page.IsValid == true)
{ //把数据写入数据库}}
二、在实现自定义验证控件时要注意的几个事项:
1.要实现对用户名的存在性验证,不能用普通验证控件,只能用自定义验证控件CustomValidator。
2.实现马上验证,只有给被验证的用户名框引入文本改变事件txt Name_Text Changed,而且被验证的文本框要设置属性Auto Post Back="True",服务器在这个文本发生改变时立马可以进行数据库查询验证。
3.一定要明确验证控件的错误信息,是在其属性args.IsValid值为false时才显示出来。在txtName_TextChanged事件中进行验证时要用验证控件的名字来引用,如CustomValidator1.IsValid。
4.在注册时,在把用户名插入到数据库前一定要判断页面的有效性,即if (Page.IsValid == true){注册代码},否则会执行注册代码,同名的用户也会再次写入数据库。
结语
验证控件是录入数据的第一道安全屏障,而自定义验证控件是解决普通验证控件无法实现的验证任务,用.net和C#开发应用系统中经常要用到的。就本文而言,有助于初次开发者自定义验证控件CustomValidator编程的基本思路,掌握它的基本用法,从而为开发出一个安全稳定的系统打下坚实的基础。要用到的关键属性和事件有:AutoPostBack="True",CustomValidator1.IsValid=”True”, args.IsValid, Page.IsValid, txtName_TextChanged。
參考文献
[1]陈巧莉,杨亨东,吴梦兰. ASP.NET项目开发一体化教程[M].上海:上海交通大学出版社,2017.
[2]张领.ASP NET项目开发全程实录[M].北京:清华大学出版社,2018.
[3]Daniel Cazzulino等.C#Web应用程序入门经典[M].北京:清华大学出版社,2003.