C#工具:ASP.NET MVC生成图片验证码
2021-06-10 05:05
                         标签:ati   验证码   his   rap   ++   .net   image   out   ima    1、复制下列代码,拷贝到控制器中。 2、复制以下图片标记到视图中 3、验证方式,使用 Session["SecurityCode"] 判断填写的是否相等,txtCode自己输入的验证码。   C#工具:ASP.NET MVC生成图片验证码 标签:ati   验证码   his   rap   ++   .net   image   out   ima    原文地址:https://www.cnblogs.com/liuyuanjiao/p/10622572.html#region  生成验证码图片
        // [OutputCache(Location = OutputCacheLocation.None, Duration = 0, NoStore = false)]
        public ActionResult SecurityCode()
        {
            string oldcode = Session["SecurityCode"] as string;
            string code = CreateRandomCode(5);
            Session["SecurityCode"] = code;
            return File(CreateValidateGraphic(code), "image/Jpeg");
        }
        private byte[] CreateImage(string checkCode)
        {
            int iwidth = (int)(checkCode.Length * 12);
            System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20);
            Graphics g = Graphics.FromImage(image);
            Font f = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Bold);
            Brush b = new System.Drawing.SolidBrush(Color.White);
            g.Clear(Color.Blue);
            g.DrawString(checkCode, f, b, 3, 3);
            Pen blackPen = new Pen(Color.Black, 0);
            Random rand = new Random();
            for (int i = 0; i 5; i++)
            {
                int x1 = rand.Next(image.Width);
                int x2 = rand.Next(image.Width);
                int y1 = rand.Next(image.Height);
                int y2 = rand.Next(image.Height);
                g.DrawLine(new Pen(Color.Silver, 1), x1, y1, x2, y2);
            }
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            return ms.ToArray();
        }
        private string CreateRandomCode(int codeCount)
        {
            string allChar = "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,W,X,Y,Z";
            string[] allCharArray = allChar.Split(‘,‘);
            string randomCode = "";
            int temp = -1;
            Random rand = new Random();
            for (int i = 0; i )
            {
                if (temp != -1)
                {
                    rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
                }
                int t = rand.Next(35);
                if (temp == t)
                {
                    return CreateRandomCode(codeCount);
                }
                temp = t;
                randomCode += allCharArray[t];
            }
            return randomCode;
        }
        /// 
"/控制器的名字/SecurityCode" onclick="this.src+=‘?new Date()‘" />
           if (Session["SecurityCode"] .ToString().ToLower() != txtCode.ToLower())
                {
                    Response.Write("");
                }
                else
                {
                 
                }    
下一篇:Apicloud学习第四天
文章标题:C#工具:ASP.NET MVC生成图片验证码
文章链接:http://soscw.com/index.php/essay/93007.html