网站验证码源码(学习)



本代码直接复制进去就可以用了,刷新就可以看到验证码的变动。
这个验证码已经在 DotNet迅网 (http://www.16sw.com) 使用。

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;
// myself
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

public  partial  class _Default : System.Web.UI.Page 
{
     public System.Web.UI.WebControls.Image verifyNumber =  new System.Web.UI.WebControls.Image();

     protected  void Page_Load( object sender, EventArgs e)
    {
         string tmp = RndNum(Convert.ToInt16( 6));
        Session[ " verify "] = tmp;
        ValidateCode(tmp);
    }

     private  void ValidateCode( string VNum)
    {
        Bitmap Img =  null;
        Graphics g =  null;
        MemoryStream ms =  null;
         int gheight = VNum.Length *  9;
        Img =  new Bitmap(gheight,  18);
        g = Graphics.FromImage(Img);
         // 背景颜色
        g.Clear(Color.WhiteSmoke);
         // 文字字体
        Font f =  new Font( " Tahoma "9);
         // 文字颜色
        SolidBrush s =  new SolidBrush(Color.Red);
        g.DrawString(VNum, f, s,  33);
        ms =  new MemoryStream();
        Img.Save(ms, ImageFormat.Jpeg);
        Response.ClearContent();
        Response.ContentType =  " image/Jpeg ";
        Response.BinaryWrite(ms.ToArray());
        g.Dispose();
        Img.Dispose();
        Response.End();
    }
     private  string RndNum( int VcodeNum)
   {
     string MaxNum= "";
     string MinNum= "";
     for ( int i =  0; i < VcodeNum; i++ )
    {
        MaxNum = MaxNum +  " 9 ";
    }
    MinNum=MaxNum.Remove( 0, 1);
    Random rd= new Random();   
     string VNum=Convert.ToString(rd.Next(Convert.ToInt32(MinNum),Convert.ToInt32(MaxNum)));
     return VNum;
   }
}



本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2008/02/18/1071803.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值