谁有这款验证码,适用.NET 2.0

解决方案 »

  1.   

    这个貌似是自己利用GUID画得吧- -
      

  2.   

    代码:你自己保存成ashx 文件吧
    <%@ WebHandler Language="C#" Class="WaterMark" %>
    /*
     * 创建人:牛腩
     * 创建时间:2008-12-4 20:53:36
     * 版权所有:牛腩&众志网(www.tg029.com)
     */
    using System;
    using System.Web;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Web.SessionState;  public class WaterMark : IHttpHandler, IRequiresSessionState  // 要使用session必须实现该接口,记得要导入System.Web.SessionState命名空间
    {    public void ProcessRequest(HttpContext context)
        {
            string checkCode = GenCode(5);  // 产生5位随机字符
            context.Session["Code"] = checkCode; //将字符串保存到Session中,以便需要时进行验证
            System.Drawing.Bitmap image = new System.Drawing.Bitmap(70, 22);
            Graphics g = Graphics.FromImage(image);
            try
            {
                //生成随机生成器
                Random random = new Random();            //清空图片背景色
                g.Clear(Color.White);            // 画图片的背景噪音线
                int i;
                for (i = 0; i < 25; 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.Silver), x1, y1, x2, y2);
                }            Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold));
                System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2F, true);
                g.DrawString(checkCode, font, brush, 2, 2);            //画图片的前景噪音点
                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);
                context.Response.ClearContent();
                context.Response.ContentType = "image/Gif";
                context.Response.BinaryWrite(ms.ToArray());
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }    /// <summary>
        /// 产生随机字符串
        /// </summary>
        /// <param name="num">随机出几个字符</param>
        /// <returns>随机出的字符串</returns>
        private string GenCode(int num)
        {
            string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//"的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府称太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严";
            char[] chastr = str.ToCharArray();
            // string[] source ={ "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 code = "";
            Random rd = new Random();
            int i;
            for (i = 0; i < num; i++)
            {
                //code += source[rd.Next(0, source.Length)];
                code += str.Substring(rd.Next(0, str.Length), 1);
            }
            return code;    }    public bool IsReusable
        {
            get
            {
                return false;
            }
        }}
      

  3.   

    他说的应该是,图形内容比较容易被机器识别,相对比较好认。另外一个验证码:
    <%@ WebHandler Language="C#" Class="ValidateImageHandler" %>using System;
    using System.Web;
    using System.Web.SessionState;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Text;/// <summary>
    /// ValidateImageHandler 生成网站验证码功能
    /// </summary>
    public class ValidateImageHandler : IHttpHandler, IRequiresSessionState
    {
        int intLength = 5;               //长度
        string strIdentify = "Identify"; //随机字串存储键值,以便存储到Session中
    public ValidateImageHandler()
    {
    }    /// <summary>
        ///  生成验证图片核心代码
        /// </summary>
        /// <param name="hc"></param>
        public void ProcessRequest(HttpContext hc)
        {
            //设置输出流图片格式
            hc.Response.ContentType = "image/gif";
            
            Bitmap b = new Bitmap(200, 60);
            Graphics g = Graphics.FromImage(b);
            g.FillRectangle(new SolidBrush(Color.YellowGreen), 0, 0, 200, 60);
            Font font = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel);
            Random r = new Random();        //合法随机显示字符列表
            string strLetters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
            StringBuilder s = new StringBuilder();
            
            //将随机生成的字符串绘制到图片上
            for (int i = 0; i < intLength; i++)
            {
                s.Append(strLetters.Substring(r.Next(0, strLetters.Length - 1), 1));
                g.DrawString(s[s.Length - 1].ToString(), font, new SolidBrush(Color.Blue), i * 38, r.Next(0, 15));
            }        //生成干扰线条
            Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
            for (int i = 0; i < 10; i++)
            {
                g.DrawLine(pen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
            }
            b.Save(hc.Response.OutputStream, ImageFormat.Gif);
            hc.Session[strIdentify] = s.ToString(); //先保存在Session中,验证与用户输入是否一致
            hc.Response.End();
       
        }
        
        /// <summary>
        /// 表示此类实例是否可以被多个请求共用(重用可以提高性能)
        /// </summary>
        public bool IsReusable
        {
            get
            {
                return true;
            }
        }
    }
      

  4.   

    這個怎樣http://captcha.biz/?gclid=CLKOtf3h-KsCFaWL4godnUZItg
      

  5.   

    这个到处都是了
    http://taohui8.com/guestbook.aspx  这个更酷...