ASP.NET中如何使用前台和后台验证
2011-04-11 15:30
435 查看
最近自学ASP.NET中,遇到一些很基础的问题先记下来,以后也可以复习一下。
刚看了篇文章,讲了后台验证的必要性(《为什么不能只用前台js验证[必须结合后台验证]》 原文博客:http://www.52rs.net/ArticleView.aspx?gID=ac085c49-339b-4315-9447-98e78ac64ae3),既然有了后台验证,为什么还要进行前台验证,这样做不是让程序更复杂了?这个问题先放着,待深入学习之后慢慢了解。
开始进入正题。
前台一般用js验证,比如验证表单的数据:
<script type="text/javascript">
function checkForm()
{
var _uid=document.getElementById("<%=txt_Id.ClientID %>").value;
var _upwd=document.getElementById("<%=txt_Pwd.ClientID %>").value;
var _upwdSure=document.getElementById("<%=txt_Pwd_Sure.ClientID %>").value;
var _uemail=document.getElementById("<%=txt_Email.ClientID %>").value;
if(_uid =="")
{
alert("账号不能为空!");
return false;
}
//验证密码与确认密码是否一致
if (_upwd != _upwdSure) {
alert("密码与确认密码不一致");
return false;
}
//验证密码 这里的正则表达式的判断方法跟c#不一样 请注意:/正则表达式 /g g表示全部查找
var reg = /^[a-zA-Z0-9]{6,20}$/g;
if (!reg.test(_upwd))
{
alert("密码长度必须大于6个字符小于20个字符,只能为英语字、数字,例如:snsn2003等");
return false;
}
//验证电子邮件
reg = //w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*/g;
if (!reg.test(_uemail))
{
alert("请输入有效的邮件地址");
return false;
}
return true;
}
</script>
这段代码写在<head>里,并在相应事件里加上<OnClientClick="return checkForm()">。这里要说明一下,OnClientClick=""指的是客户端的前台验证方法,后台验证使用onclick="",比如:<asp:Button runat="server" onclick="后台方法" onClientClick="reutrn 前台方法()"/>。前台方法必须返回一个true或者false。true会继续执行后台代码;false不会继续执行后台代码。此方法在ff和IE7中测试通过,还有人说ie6不支持此方法,要写成onClientClick="event.returnValue=true"这样才可以,这个没试过,也是从网上看到的,先记在这里,以备日后查看。
后台验证也大同小异:
//从前台获取值
string uid = txt_Id.Text;
string upwd = txt_Pwd.Text;
string uemail = txt_Email.Text;
string upwdSure = txt_Pwd_Sure.Text;
//--------------------------------------------------------开始验证
//验证输入是否完整
if (uid.Length == 0 || upwd.Length == 0 || uemail.Length == 0 || upwdSure.Length==0)
{
Response.Write("<script language='JavaScript'>alert('输入不完整')</script>");
return;
}
//验证密码与确认密码是否一致
if (!upwd.Equals(upwdSure))
{
Response.Write("<script language='JavaScript'>alert('后台验证:密码与确认密码不一致')</script>");
return;
}
//验证电子邮件
if (!Regex.IsMatch(uemail, @"/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*"))
{
Response.Write("<script language='JavaScript'>alert('请输入有效的邮件地址')</script>");
return;
}
//--------------------------------------------------------验证结束
前后台的验证方法介绍完了,这个例子里面并没有实现图片验证码的功能,所以没有图片验证码的验证,其方法以后会补充。
希望大家共同学习!
加油!
刚看了篇文章,讲了后台验证的必要性(《为什么不能只用前台js验证[必须结合后台验证]》 原文博客:http://www.52rs.net/ArticleView.aspx?gID=ac085c49-339b-4315-9447-98e78ac64ae3),既然有了后台验证,为什么还要进行前台验证,这样做不是让程序更复杂了?这个问题先放着,待深入学习之后慢慢了解。
开始进入正题。
前台一般用js验证,比如验证表单的数据:
<script type="text/javascript">
function checkForm()
{
var _uid=document.getElementById("<%=txt_Id.ClientID %>").value;
var _upwd=document.getElementById("<%=txt_Pwd.ClientID %>").value;
var _upwdSure=document.getElementById("<%=txt_Pwd_Sure.ClientID %>").value;
var _uemail=document.getElementById("<%=txt_Email.ClientID %>").value;
if(_uid =="")
{
alert("账号不能为空!");
return false;
}
//验证密码与确认密码是否一致
if (_upwd != _upwdSure) {
alert("密码与确认密码不一致");
return false;
}
//验证密码 这里的正则表达式的判断方法跟c#不一样 请注意:/正则表达式 /g g表示全部查找
var reg = /^[a-zA-Z0-9]{6,20}$/g;
if (!reg.test(_upwd))
{
alert("密码长度必须大于6个字符小于20个字符,只能为英语字、数字,例如:snsn2003等");
return false;
}
//验证电子邮件
reg = //w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*/g;
if (!reg.test(_uemail))
{
alert("请输入有效的邮件地址");
return false;
}
return true;
}
</script>
这段代码写在<head>里,并在相应事件里加上<OnClientClick="return checkForm()">。这里要说明一下,OnClientClick=""指的是客户端的前台验证方法,后台验证使用onclick="",比如:<asp:Button runat="server" onclick="后台方法" onClientClick="reutrn 前台方法()"/>。前台方法必须返回一个true或者false。true会继续执行后台代码;false不会继续执行后台代码。此方法在ff和IE7中测试通过,还有人说ie6不支持此方法,要写成onClientClick="event.returnValue=true"这样才可以,这个没试过,也是从网上看到的,先记在这里,以备日后查看。
后台验证也大同小异:
//从前台获取值
string uid = txt_Id.Text;
string upwd = txt_Pwd.Text;
string uemail = txt_Email.Text;
string upwdSure = txt_Pwd_Sure.Text;
//--------------------------------------------------------开始验证
//验证输入是否完整
if (uid.Length == 0 || upwd.Length == 0 || uemail.Length == 0 || upwdSure.Length==0)
{
Response.Write("<script language='JavaScript'>alert('输入不完整')</script>");
return;
}
//验证密码与确认密码是否一致
if (!upwd.Equals(upwdSure))
{
Response.Write("<script language='JavaScript'>alert('后台验证:密码与确认密码不一致')</script>");
return;
}
//验证电子邮件
if (!Regex.IsMatch(uemail, @"/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*"))
{
Response.Write("<script language='JavaScript'>alert('请输入有效的邮件地址')</script>");
return;
}
//--------------------------------------------------------验证结束
前后台的验证方法介绍完了,这个例子里面并没有实现图片验证码的功能,所以没有图片验证码的验证,其方法以后会补充。
希望大家共同学习!
加油!
相关文章推荐
- asp.net中的后台按钮如何先执行前台验证再执行后台代码
- asp.net中的后台按钮如何先执行前台验证再执行后台代码
- 如何在asp.net后台调用前台代码
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- 关于“Asp.net 中后台CS读取数据库数据生成数组传递给前台页面JS使用”
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- ASP.NET前台JS与后台CS函数如何互相调用
- asp.net后台如何输出js脚本使用什么方法可以实现
- ASP.NET前台如何调用后台定义的变量即数据的绑定详解
- ASP.NET前台JS与后台CS函数如何互相调用
- ASP.NET WebForm中前台代码如何绑定后台变量
- ASP.NETWeb服务器验证控件如何使用
- ASP.NET前台JS与后台CS函数如何互相调用
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- ASP.NET中使用JSON方便实现前台与后台的数据交换
- ASP.NET前台使用__doPostBack函数调用后台事件
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- 使用ASP.NET的C#语言写后台如何将数据返回给微信小程序的JS
- ASP.NET中使用JSON方便实现前台与后台的数据交换
- asp.net js方法互调 asp.net 前台如何调用后台方法