zoukankan      html  css  js  c++  java
  • 验证码

    Acion:

    
    

    public class AuthenticationController : Controller
    {  

    /// <summary>
    /// 验证码
    /// </summary>
    /// <returns></returns>
    public FileResult VerificationCode()
    {
    System.IO.MemoryStream ms = new BLL().GenerateVerificationCode();
    byte[] bytes = ms.ToArray();
    return File(bytes, @"image/gif");
    }

     

    生成验证码:

    public class BLL
        {
    
    /// <summary>
            /// 生成验证码代码
            /// </summary>
            public System.IO.MemoryStream GenerateVerificationCode()
            {
                string checkCode = GenCode(5);  // 产生5位随机字符
                                                //todo:将字符串保存到Session中,以便需要时进行验证
                using (Bitmap image = new Bitmap(70, 22))
                {
                    using (Graphics g = Graphics.FromImage(image))
                    {
                        //生成随机生成器
                        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);
                        return ms;
                    }
                }
            }
    
            /// <summary>
            /// 产生随机字符串
            /// </summary>
            /// <param name="num">随机出几个字符</param>
            /// <returns>随机出的字符串</returns>
            private string GenCode(int num)
            {
                string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                char[] chastr = str.ToCharArray();
                string code = "";
                Random rd = new Random();
                int i;
                for (i = 0; i < num; i++)
                {
                    code += str.Substring(rd.Next(0, str.Length), 1);
                }
                return code;
    
            }
    }

    View:

    <img src="@Url.Action("VerificationCode", "Authentication", new { time=DateTime.Now.Millisecond})"  />
  • 相关阅读:
    寒假自学1.18
    寒假自学笔记1.17
    寒假自学1.16
    寒假自学1.15
    寒假自学1.14
    寒假自学1.13
    寒假自学1.12
    CSS position 属性
    node 获取客户端请求 服务器响应客户端 页面显示客户端想要的格式
    使用 npm 安 装node_modules 总是提示报错
  • 原文地址:https://www.cnblogs.com/whwfwfy/p/5555879.html
Copyright © 2011-2022 走看看