说明:验证码的应用可以在一定程度上防止恶意注册,它的原理就是在一个单独的页面上首先左一张图片,
然后在这个图片上添加数字,字母或者汉字
应用
第一步:在后台中生成背景图片
int ImageWidth = 85;
int ImageHeight = 33;
Font font = new Font("Arial", 19, FontStyle.Bold);//定义字体
Brush brush=new SolidBrush(Color.Black);//定义工具
Bitmap bitmap= new Bitmap(ImageWidth,ImageHeight);//定义画板
Graphics graphics = Graphics.FromImage(bitmap);//在定义的画板上绘图
graphics.Clear(ColorTranslator.FromHtml("#d9e8b7"));//填充背景颜色
RectangleF rect = new RectangleF(5,2,ImageWidth,ImageHeight);//定义个绘图形状
Pen pen1 = new Pen(Color.Blue);//定义钢笔 绘制干扰线
Pen pen2 = new Pen(Color.DarkGreen);//定义钢笔 绘制干扰线
Random rand = new Random();
for (int i = 0;i<2;i++)//绘制两条横向干扰线
{
Point p1=new Point(0,rand.Next(ImageWidth));
Point p2=new Point(ImageWidth,rand.Next(ImageWidth));
graphics.DrawLine(pen1,p1,p2);
}
for (int i=0;i<2;i++)//绘制两条纵向干扰线
{
Point p1 = new Point(0,rand.Next(ImageHeight));
Point p2 = new Point(ImageHeight,rand.Next(ImageHeight));
graphics.DrawLine(pen2,p1,p2);
}
graphics.DrawString(CheckRandomCode(),font,brush,rect);//绘制验证码文字
bitmap.Save(Response.OutputStream,ImageFormat.Gif);//保存为gif格式的图片
graphics.Dispose();
bitmap.Dispose();
int ImageHeight = 33;
Font font = new Font("Arial", 19, FontStyle.Bold);//定义字体
Brush brush=new SolidBrush(Color.Black);//定义工具
Bitmap bitmap= new Bitmap(ImageWidth,ImageHeight);//定义画板
Graphics graphics = Graphics.FromImage(bitmap);//在定义的画板上绘图
graphics.Clear(ColorTranslator.FromHtml("#d9e8b7"));//填充背景颜色
RectangleF rect = new RectangleF(5,2,ImageWidth,ImageHeight);//定义个绘图形状
Pen pen1 = new Pen(Color.Blue);//定义钢笔 绘制干扰线
Pen pen2 = new Pen(Color.DarkGreen);//定义钢笔 绘制干扰线
Random rand = new Random();
for (int i = 0;i<2;i++)//绘制两条横向干扰线
{
Point p1=new Point(0,rand.Next(ImageWidth));
Point p2=new Point(ImageWidth,rand.Next(ImageWidth));
graphics.DrawLine(pen1,p1,p2);
}
for (int i=0;i<2;i++)//绘制两条纵向干扰线
{
Point p1 = new Point(0,rand.Next(ImageHeight));
Point p2 = new Point(ImageHeight,rand.Next(ImageHeight));
graphics.DrawLine(pen2,p1,p2);
}
graphics.DrawString(CheckRandomCode(),font,brush,rect);//绘制验证码文字
bitmap.Save(Response.OutputStream,ImageFormat.Gif);//保存为gif格式的图片
graphics.Dispose();
bitmap.Dispose();
第二步:在后台中生成字符库,随机取出4个
public string CheckRandomCode()
{
Random rom = new Random();
char[] allcheckRandom ={'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'};
string Randomcode = "";
for (int i = 0; i < 4;i++)
{
Randomcode +=allcheckRandom[rom.Next(allcheckRandom.Length)];
Session["verty"] = Randomcode;
}
Session["CheckCode"] = Randomcode;
return Randomcode;
}
{
Random rom = new Random();
char[] allcheckRandom ={'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'};
string Randomcode = "";
for (int i = 0; i < 4;i++)
{
Randomcode +=allcheckRandom[rom.Next(allcheckRandom.Length)];
Session["verty"] = Randomcode;
}
Session["CheckCode"] = Randomcode;
return Randomcode;
}
其中checkCode.aspx就是一个页面
<IMG id="Img1" src="../login/checkCode.aspx">
<IMG id="Img1" src="../login/checkCode.aspx">
第四步:"换下一张"的功能实现(确切地说为局部刷新)
在JS中:其中Img1为ID
onclick="Img1.src='../login/checkCode.aspx?'+Math.random()"
在JQUERY中:
$("#Img1").attr("src","../login/checkCode.aspx?"+Math.random());
onclick="Img1.src='../login/checkCode.aspx?'+Math.random()"
在JQUERY中:
$("#Img1").attr("src","../login/checkCode.aspx?"+Math.random());