ERP俱乐部
ERP爱好者、ERP从业者互相交流、互相学习的乐园;我们的愿景是成为全球一流的中文ERP(Enterprise Resource Planning)交流平台
网站首页 论坛首页 搜索 用户列表 FAQ 注册 登录  
ERP俱乐部 -> Microsoft专栏 -> Visual C# -> 怎样做随机生成验证码!
  怎样做随机生成验证码!
帖子发起人: 半神   发起时间: 2008-12-20 09:40 下午   回复数: 1
? 上一主题 下一主题 ?
楼主
  2008-12-20, 09:40 下午
半神 离线,最后访问时间: 2013/6/5 18:59:05 半神

发帖数前25位

超级管理员
职务: 超级管理员
80级
等级: 80级
注册: 2008年1月6日
区域: 华南
经验: 1,267
积分: 1,131
精华: 2
发贴: 590
排名: 26
Site AdministratorsGlobal ModeratorsSite ModeratorsSite Registered Users培训学员(MM学员服务区-北京200708班) 培训学员(FI学员服务区-深圳200805班) 每日发帖之星
怎样做随机生成验证码!
 

到网上收一个第三方控件,控件名是:WebValidates.dll.
编码思路:
1、首先生成一个随机字符串。
2、然后将随机字符 串保存进session或者cookie中。用于输入时比较。
3、然后将随机字符画在图片中,最后将图片保存在流中。就可以了。 
   protected void Page_Load(object sender, EventArgs e)
    {
       
string tmp = RndNum(4);
        HttpCookie a
= new HttpCookie("ImageV", tmp);
        Response.Cookies.Add(a);
       
this.ValidateCode(tmp);

    }
   
//将生成的随机数画图并保存在输出流中
    private void ValidateCode(string VNum)
    {
       
int gwidth = VNum.Length * 12;
       
//定义一个位图,并设置高和宽
        Bitmap Img = new Bitmap(gwidth, 25);
       
//定义一个画布
        Graphics g = Graphics.FromImage(Img);
       
//背景颜色
        g.Clear(Color.LightSteelBlue);
       
//文字字体
        Font f = new Font("Arial Black", 10);
       
//文字颜色
        SolidBrush s = new SolidBrush(Color.RoyalBlue);
       
//将vnum画在位图中
        g.DrawString(VNum, f, s, 3, 3);

       
//定义输出类型
        Response.ContentType = "image/jpeg";
       
//将位图保存在输出流中
        Img.Save(Response.OutputStream, ImageFormat.Jpeg);
        Img.Dispose();
        Response.End();
    }

   
/// <summary>
   
/// 生成四位随机数
   
/// </summary>
   
/// <param name="VcodeNum"></param>
   
/// <returns></returns>
    private string RndNum(int VcodeNum)
    {
       
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";
       
string[] VcArray = Vchar.Split(',');
       
string VNum = "";

        Random rand
= new Random(DateTime.Now.Millisecond);

       
for (int i = 0; i < VcodeNum; i++)
        {
           
int t = rand.Next(35);
            VNum
+= VcArray[t];
        }
       
return VNum;
    }

//在其他页面调用时,只需要<img src="页面的路径"/>


开源时代的到来,对与技术人员是一个巨大的考验



QQ:876162454


分享按钮 IP 地址: 已登录   来自: 已登录    返回顶部
第 2 楼
  2009-07-16, 07:53 下午
cdplayer 离线,最后访问时间: 2010/10/15 15:16:04 cdplayer

发帖数前500位

20级
等级: 20级
注册: 2008年7月10日
经验: 42
积分: 2
精华: 0
发贴: 42
排名: 656
Site Registered Users每日发帖之星
Re: 怎样做随机生成验证码!
 
学习
IP 地址: 已登录   来自: 已登录    返回顶部
 第 1 页 总共 1 页 [共有 2 条记录]
ERP俱乐部 -> Microsoft专栏 -> Visual C# -> 怎样做随机生成验证码!
(C)Copyright 2005-2020 www.erpclub.org All Rights Reserved.
Tel:+86-755-26444630
Email:webmaster@yok.com.cn