配色: 字号:
加减乘验证码
2013-05-06 | 阅:  转:  |  分享 
  
前台界面:

需要引入的命名空间:
usingSystem.Drawing;
usingSystem.Drawing.Drawing2D;
usingSystem.IO;
usingSystem.Drawing.Imaging;

页面一count.aspx
前台没有任何内容,
后台代码:
protectedvoidPage_Load(objectsender,EventArgse)
{
GetValidateCodePic();
}

///
///生成图片(背景噪音线、前景噪音线)
///

///
protectedvoidGetValidateCodePic()
{
Randomrm=newRandom();
int_intNum1=rm.Next(1,20);
int_intNum2=rm.Next(1,20);
string[]_strValue={"+","-",""};
string_strOper=_strValue[rm.Next(0,_strValue.Length)];
//--获取一个运算符号
int_intResult;
switch(_strOper)
{
case"+":
_intResult=_intNum1+_intNum2;break;
case"-":
_intResult=_intNum1-_intNum2;break;
default:
_intResult=_intNum1_intNum2;break;
}
Session["checkCode"]=_intResult;
//--将结果保存下来
string_strCode=_intNum1+""+_strOper+""+_intNum2+"=?";
//--设置要显示的字符串
System.Drawing.Bitmap_pic=newSystem.Drawing.Bitmap(Convert.ToInt32(_strCode.Length10),20);
Graphics_g=Graphics.FromImage(_pic);
try
{
//--1.生成随机生成器
Random_rd=newRandom();
//--2.清空图片背景色
_g.Clear(Color.White);
//--3.画图片的背景噪音线
for(inti=0;i<30;i++)
{
intx1=_rd.Next(_pic.Width);
intx2=_rd.Next(_pic.Width);
inty1=_rd.Next(_pic.Height);
inty2=_rd.Next(_pic.Height);
//--4.绘制直线和虚线
_g.DrawLine(newPen(Color.Gainsboro),x1,x2,y1,y2);
}
//--5.定义字体类型,颜色,加粗
Font_font=newFont("Batang",13,FontStyle.Bold);
LinearGradientBrush_brush=newLinearGradientBrush(newRectangle(0,0,_pic.Width,_pic.Height),Color.MidnightBlue,Color.Green,1.2F,true);
_g.DrawString(_strCode,_font,_brush,2,2);
//--6.花图片的前景噪音点
_g.DrawRectangle(newPen(Color.YellowGreen),0,0,_pic.Width-1,_pic.Height-1);
//--7.输出
MemoryStream_ms=newMemoryStream();
//_pic.Save(_ms,ImageFormat.Gif);
Context.Response.ContentType="image/jpeg";
_pic.Save(Context.Response.OutputStream,ImageFormat.Jpeg);
//Response.ClearContent();
//Response.ContentType="Image/gif";
//Response.BinaryWrite(_ms.ToArray());
}
catch
{
_g.Dispose();
_pic.Dispose();
}

}
页面二:Default.aspx(作为调用第一个页面)
前台代码:




functionreLoadCode(){
var_img=document.getElementById("Img");
//_img.src="ValidateCode.aspx?id="+Math.random;
_img.setAttribute("src","count.aspx?id="+Math.random);
}
functioncheckIsNull(){
if(document.getElementById("txtValue").value.length==0){
document.getElementById("erSpan").innerHTML="请输入验证码";
returnfalse;
}
else
returntrue;
}











OnClientClick="reLoadCode()"/>








后台代码protectedvoidbtnSub_Click(objectsernder,EventArgse)
{
if(txtValue.Text.Trim().Length==0)
{
Page.ClientScript.RegisterStartupScript(GetType(),"","alert(''请输入验证码'')",true);
}
else
{
if(txtValue.Text.Trim().Equals(Session["checkCode"].ToString()))
{
Page.ClientScript.RegisterStartupScript(GetType(),"","alert(''验证通过'')",true);
}
else
{
Page.ClientScript.RegisterStartupScript(GetType(),"","alert(''请输入正确的验证码'')",true);
}
}
}
献花(0)
+1
(本文系Honey_Dry首藏)