All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP截取UTF-8字符串,解决半字符问题_[PHP教程]
实例指导:开发.NET程序注意事项_.net资料_编程技术
开发技术展望,Asp.net3.0,蓝图_.net资料_编程技术
更正用AJAX实现IE TREE无刷新取值的方法_[AJAX教程]
PHP加密文本文件并限制特定页面的存取_php资料_编程技术
深入讲解SQL Server 2008的新版CTP特性_[SQL Server教程]
Web.config简要配置说明_[Asp.Net教程]
XML,WebService完全实例详细解析_.net资料_编程技术
IsPostBack深入探讨_[Asp.Net教程]
PHP+MySQL应用中使用XOR运算加密算法_[PHP教程]
Reading number is top 10 pictures
A man's favorite things10
重口味人造肉
Men's and women's orgasms
Magnificent cloud2
宝贝系列
联通的3G无线网卡我只用了一天,看看流量......
妹子最好别玩单反
徐若瑄展示美丽胸围1
Absolutely shocked. National geographic 50 animal photographys8
Kim jong il's mistress, national beauty JinYuJi actor2
Download software ranking
Tram sex maniac 2 (H) rar bag11
VC++6.0培训教程
Desire a peach blossom
都市狐狸姑娘传
好色的外科大夫
Unix video tutorial18
Ashlynn Video3
I'm come from Beijing1
Be there or be square
asp.netWeb服务器高级编程
qq published in(发表于) 2014/7/11 9:29:22 Edit(编辑)
GDI+绘制验证码图片

GDI+绘制验证码图片

GDI+绘制验证码图片

绘制验证码图片

在网站开发过程中,验证码技术是保护网站安全的最基本环节,它可以防止非法人员利用注册工具或登录工具来攻击网站。本节通过一个实例来介绍如何在网站中绘制验证码图片。实例运行结果如图1所示。



图1 验证码图片

程序开发步骤如下所示:

(1)新建一个网站,将其命名为26_04,默认主页名为Default.aspx。

(2)在该网站中添加一个code.aspx页面,用于生成验证码图片。

(3)程序主要代码如下。

code.aspx页面中定义了两个方法,分别为GenerateCheckCode方法和CreateCheckCodeImage方法,其中GenerateCheckCode方法用来生成随机字符串,而CreateCheckCodeImage方法则用来将随机生成的字符串转换成验证码图片。GenerateCheckCode方法实现代码如下:

protected string GenerateCheckCode(int number)

{

string checkCode = String.Empty;

string Vchar = "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[] VcArray = Vchar.Split(',');

int temp = -1; //记录上次随机数值,尽量避免生产几个一样的随机数

Random rand = new Random();

for (int i = 1; i < number+1; i++)

{

if (temp != -1)

{

rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));

}

int t = rand.Next(VcArray.Length);

if (temp != -1 && temp = = t)

{

return GenerateCheckCode(number);

}

temp = t;

checkCode += VcArray[t];

}

Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));

return checkCode;

}

CreateCheckCodeImage方法实现代码如下:

private void CreateCheckCodeImage(string checkCode)

{

if (checkCode == null || checkCode.Trim() == String.Empty)

return;

System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);

Graphics g = Graphics.FromImage(image);

try

{

//生成随机生成器

Random random = new Random();

//清空图片背景色

g.Clear(Color.White);

//画图片的背景噪音线

for (int i = 0; i < 2; i++)

{

int x1 = random.Next(image.Width);

int x2 = random.Next(image.Width);

int y1 = random.Next(image.Height);

int y2 = random.Next(image.Height);

g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);

}

Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.Font Style.Italic));

System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradient Brush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, True);

g.DrawString(checkCode, font, brush, 2, 2);

//画图片的前景噪音点

for (int i = 0; i < 100; i++)

{

int x = random.Next(image.Width);

int y = random.Next(image.Height);

image.SetPixel(x, y, Color.FromArgb(random.Next()));

}

//画图片的边框线

g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);

System.IO.MemoryStream ms = new System.IO.MemoryStream();

image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);

Response.ClearContent();

Response.ContentType = "image/Gif";

Response.BinaryWrite(ms.ToArray());

}

finally

{

g.Dispose();

image.Dispose();

}

}

将Default.aspx页设置为首页,在该页中添加一个Image控件,用来显示验证码图片,并将其ImageUrl属性设置为“code.aspx”,实现代码如下:



完整程序代码如下:

★ ★★★★code.aspx页面设计文件完整程序代码★★★★★

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="code.aspx.cs" Inherits="code" %>







无标题页

















★ ★★★★code.aspx.cs页面代码文件完整程序代码★★★★★



添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.