应该感谢那些指出你错误的人

借我三千虎骑,复我泱泱中华!

博客园 首页 新随笔 联系 订阅 管理
 
在ASP.NET中生成随机验证码方法很简单,首先新建一个.aspx文件,进入Html视图,将所有Html标记删掉,只留下最上面的一行Page指令,如新建一个名为code.aspx的文件,后台代码如下:
 1using System;
 2using System.Collections;
 3using System.ComponentModel;
 4using System.Data;
 5using System.Drawing;
 6using System.Web;
 7using System.Web.SessionState;
 8using System.Web.UI;
 9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11
12namespace Code
13{
14    /// <summary>
15    /// 此页面只用于生成4位验证码。
16    /// </summary>

17    public class Code : System.Web.UI.Page
18    {
19    
20        private void Page_Load(object sender, System.EventArgs e)
21        {
22            // 在此处放置用户代码以初始化页面
23            if(!Page.IsPostBack)
24            {
25                this.GenImg(this.GenCode(4));
26            }

27        }

28
29        //产生随机字符串
30        private string GenCode(int num)
31        {
32            string[] source={"0","1","2","3","4","5","6","7","8","9",
33                                "A","B","C","D","E","F","G","H","I","J","K","L","M","N",
34                                "O","P","Q","R","S","T","U","V","W","X","Y","Z"}
;
35            string code="";
36            Random rd=new Random();
37            for(int i=0;i < num;i++)
38            {
39                code += source[rd.Next(0,source.Length)];
40            }

41            return code;
42        }

43
44        //生成图片
45        private void GenImg(string code)
46        {
47            Bitmap myPalette=new Bitmap(60,20);//定义一个画板
48            
49            Graphics gh=Graphics.FromImage(myPalette);//在画板上定义绘图的实例
50
51            Rectangle rc=new Rectangle(0,0,60,20);//定义一个矩形
52
53            gh.FillRectangle(new SolidBrush(Color.Silver),rc);//填充矩形
54            gh.DrawString(code,new Font("宋体",16),new SolidBrush(Color.Gray),rc);//在矩形内画出字符串
55
56            myPalette.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);//将图片显示出来
57
58            Session["ValidateCode"]=code;//将字符串保存到Session中,以便需要时进行验证
59
60            gh.Dispose();
61            myPalette.Dispose();
62        }

63        Web 窗体设计器生成的代码
83    }

84}

85
然后在要使用验证码的地方添加一个image标记,将图片路径指到code.aspx即可。
posted on 2006-05-24 15:31  落拓孤鸿  阅读(366)  评论(0编辑  收藏  举报