zoukankan      html  css  js  c++  java
  • 用户登陆的验证码的制作

     

    添加命名空间:

    using System.Drawing;

     验证码的生成:

    protected void FormCheck()

        {

            //////先得到验证码的内容并且存放到会话中

            Random rand = new Random();

            int len = rand.Next(4, 6);//随机获得验证码的长度4-6

            char[] str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();//将候选字符放入字符数组中

            System .Text .StringBuilder code=new System.Text.StringBuilder ();//用来保存显示的字符内容

            for (int i=0;i<len;i++)

            {

            code .Append (str [rand .Next (str.Length )]);

            }

            this.Session ["result"]=code.ToString () ;//将验证码存放到会话中

            ///////得到图像的大小

            Size imageSize = new Size();

            Font myFont = new Font("arial black", 20); //字体

            using (Bitmap bmp = new Bitmap(20, 15))

            { using (Graphics g=Graphics .FromImage (bmp ))

            {

             SizeF size=g.MeasureString (code.ToString () ,myFont,1000 );

                imageSize .Width =(int)size .Width +6;//得到高度和宽的

                imageSize .Height =(int)size .Height +5;

            }

            }

     

            /////创建验证码的图像

            using (Bitmap bmp=new Bitmap (imageSize .Width ,imageSize .Height ))

            {

            using (Graphics g=Graphics .FromImage (bmp ))

            {

                g.Clear(Color .White );

                g.DrawString  (code.ToString () ,myFont ,Brushes .Black ,new RectangleF (0,0,imageSize.Width ,imageSize .Height ));

            }

     

            int num = imageSize.Width * imageSize.Height * 30 / 100;

            for (int iCount = 0; iCount < num; iCount++)

            {

                // 在随机的位置使用随机的颜色设置图片的像素

                int x = rand.Next(imageSize.Width);

                int y = rand.Next(imageSize.Height);

                int r = rand.Next(255);

                int g = rand.Next(255);

                int b = rand.Next(255);

                Color c = Color.FromArgb(r, g, b);

                bmp.SetPixel(x, y, c);

            }//for                // 输出图片

            System.IO.MemoryStream ms = new System.IO.MemoryStream();

            bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png );

            this.Response.ContentType = "image/png";

            ms.WriteTo(this.Response.OutputStream);

            ms.Close();

            }

        }

     

    ///
            ///
    检查指定的文本是否匹配验证码
            ///
            ///
    要判断的文本
            ///
    是否匹配
            public static bool CheckCode( string text )
            {
            string txt = System.Web.HttpContext.Current.Session["checkcode"] as string ;
            return text == txt ;
            }

     

     

  • 相关阅读:
    如何检查项目的需求是否完整
    Linux环境 Java内存快速查看
    字符串拼接性能比较出乎意料的结果
    MySQL 查看表大小
    五大机器学习微信公众号推荐
    如何用PYTHON代码写出音乐
    【转载】机器学习如门概览
    机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码)
    【转载】程序猿转型AI必须知道的几件事!
    如何拿到阿里算法校招offer
  • 原文地址:https://www.cnblogs.com/janes/p/1249646.html
Copyright © 2011-2022 走看看