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

Reading number is top 10 articles
ASP.NET技巧:获取数据行数据信息_[Asp.Net教程]
Asp.Net对指定的网页截图_[Asp.Net教程]
关于XHTML头部声明,什么是DOCTYPE?_[Html教程]
SQL,Artisan多层查询条件嵌套功能_[SQL,Server教程]
ASP.NET技巧:慎用url重写_[Asp.Net教程]
asp.net读取文本文件并加入DataTable中_[Asp.Net教程]
IE和FireFox下javascript读写XML实现广告轮换_JavaScript技术_编程技术
c#.net常用函数列表
如何利用PHP会话显示出当前在线的用户_php资料_编程技术
用PHP实现登陆验证码(类似条行码状)_[PHP教程]
Reading number is top 10 pictures
西游四格漫画(二)
徐若瑄展示美丽胸围1
A man's favorite things5
有种屌丝级别的好妹子
身材野火台灣美女2
赵惟依写真1
初吻给了谁?
重口味人造肉
A man's favorite things14
遇到插队的怎么办?
Download software ranking
Be there or be square
VC++6.0培训教程
打鸟视频
Kung fu panda - the secret of the teacher
Dance with duck(male prostitution)
实战黑客不求人
WebService在.NET中的实战应用教学视频 → 第5集
WebService在.NET中的实战应用教学视频 → 第1集
双旗镇刀客A
虚拟机5.5.3版
delv published in(发表于) 2014/1/24 9:04:09 Edit(编辑)
asp.net2.0生成一个复杂的验证码,背景随机,字体随机,中英文数字随机_[Asp.Net教程]

asp.net2.0生成一个复杂的验证码,背景随机,字体随机,中英文数字随机_[Asp.Net教程]

asp.net2.0生成一个复杂的验证码,背景随机,字体随机,中英文数字随机_[Asp.Net教程]

1、建立网站,添加一个网页ValitionNo.aspx,和Default.aspx,新建一个文件夹images。如图所示:




2、在images文件夹里添加以下5张图片:bg_0.jpg,bg_1.jpg,bg_2.jpg,bg_3.jpg,bg_4.jpg


bg_0.jpg

bg_1.jpg

bg_2.jpg

bg_3.jpg

bg_4.jpg

3、ValitionNo.aspx里不用放任何控件,代码如下:


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





无标题页












4、双击页面ValitionNo.aspx进入ValitionNo.aspx.cs页面,按如下所示填充代码:


using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Drawing;

public partial class guestBook_ValitionNo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Random rd = new Random(); //创建随机数对象

//以下4行,产生由6个字母和数字组成的一个字符串
string str = "ABCDEFGHIJKLMNOPQRSTURWXYZ0123456789想象是无限的";
string yanzheng = "";
for (int i = 0; i < 6; i++)
{
yanzheng = yanzheng + str.Substring(rd.Next(42), 1);
}
//验证码值存放到Session中用来比较
Session["yanzheng"] = yanzheng;

//以下三句,通过随机找一个现有图象产生一个画布Bitmap
string bgFilePath = Server.MapPath(".\images\bg_" + new Random().Next(5) + ".jpg");//随机找个图象
System.Drawing.Image imgObj = System.Drawing.Image.FromFile(bgFilePath);
Bitmap newBitmap = new Bitmap(imgObj, 290, 80);//建立位图对象

Graphics g = Graphics.FromImage(newBitmap);//根据上面创建的位图对象创建绘图面
SolidBrush brush = new SolidBrush(Color.Blue);//设置画笔颜色

//定义一个含10种字体的数组
String[] ziti ={ "Arial", "Verdana", "Comic Sans MS", "Impact", "Haettenschweiler", "Lucida Sans Unicode", "Garamond", "Courier New", "Book Antiqua", "Arial Narrow" };

//通过循环,绘制每个字符,
for (int a = 0; a < yanzheng.Length; a++)
{
Font textFont = new Font(ziti[rd.Next(9)], 30, FontStyle.Bold);//字体随机,字号大小30,加粗
//每次循环绘制一个字符,设置字体格式,画笔颜色,字符相对画布的X坐标,字符相对画布的Y坐标
g.DrawString(yanzheng.Substring(a, 1), textFont, brush, 40 + a * 36, 20);
}

//保存画的图片到输出流中
newBitmap.Save(Response.OutputStream, ImageFormat.Gif);

}
}



5、在Default.aspx里添加一个文本框,图片按钮,Label标签和普通按钮,ImageButton的图片路径是~/ValitionNo.aspx,而不是某张图片。代码如下:


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





无标题页





验证码:

换一张



onClick="Button2_Click" />





6、在Default.aspx.cs里代码如下:


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)
{

}
protected void Button2_Click(object sender, EventArgs e)
{
if (Session["yanzheng"] != null && TextBox1.Text != Session["yanzheng"].ToString())
{
Label1.Text = "验证码错误!";
return;
}
else
{
Label1.Text = "验证码正确!";
}
}
}



7、运行效果如下所示:





如果点验证码图片或者点换一张按钮,都可以使验证码随机改变,背景随机改变,数字字母汉字随机改变。

来源:http://blog.csdn.net/aspnet2002web







添加到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.