验证码经常在用户提交数据的时候,防止恶意频繁提交数据,确保数据库的安全性;在asp.net中有多种方法可以生成验证码,一般是生成图像的形式,然后用Session对象保存。。。。下面是我自己所采用的一种方法,比较简单,希望对大家有所帮助,有误的地方还望大家指正
1.前台代码
<tr>
<td style="width: 69px; height: 23px"> 验证码</td>
<td style="width: 79px; height: 23px">
<asp:TextBox ID="txtValidateCode" runat="server" Height="15px" Width="137px"></asp:TextBox></td>
<td style="width: 73px; height: 23px">
<asp:Label ID="lbValidate" runat="server" Text="Label" Font-Bold="true" Font-Size="14" Width="54px"></asp:Label>
</td>
</tr>
2.后台代码
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.txtPwd.Attributes.Add("value", Request["txtPwd"]); //提交后密码保存
string VNum = GenerateRandom(4); //产生验证码
lbValidate.Text = VNum; //把验证码的值给lable
}
private static char[] constant =
{
'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
//产生验证码
public static string GenerateRandom(int Length)
{
System.Text.StringBuilder newRandom = new System.Text.StringBuilder(62);
Random rd = new Random();
for (int i = 0; i < Length; i++)
{
newRandom.Append(constant[rd.Next(62)]);
}
return newRandom.ToString();
}
}
3.前台客户端验证
<script language="javascript">
function Check_Validate()
{
var str=document.getElementById("lbValidate").outerText;
var pos = document.getElementById("txtValidateCode").value;
var name=document.getElementById("txtName").value;
var password=document.getElementById("txtPwd").value;
//var str = document.all("lbValidate").outerText;
//var pos = document.all("txtValidateCode").value;
if(name=="")
{
alert("请输入用户名!");
return false;
}
if(password=="")
{
alert("请输入密码!");
return false;
}
if(pos=="")
{
alert("请输入验证码!");
return false;
}
if (str!=pos)
{
alert("验证码错误!请注意字母的大小写!");
return false;
}
else
{
return true;
}
}
</script>
最后在提交按钮中添加客户端验证 OnClientClick="Check_Validate()" 即可