• 验证码


    /// <summary>
        /// 生成验证码代码
        /// </summary>
        public class WaterMark : IHttpHandler,IRequiresSessionState //要使用session必须实现该接口,记得要导入System.Web.SessionState命名空间
        {
    
            public void ProcessRequest(HttpContext context)
            {
                string checkCode = GenCode(5);  // 产生5位随机字符
                context.Session["Code"] = checkCode; //将字符串保存到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);
                        context.Response.ClearContent();
                        context.Response.ContentType = "image/Gif";
                        context.Response.BinaryWrite(ms.ToArray());
                    }
                }
            }
    
            /// <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;
    
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
  • 相关阅读:
    【Python 开发】第三篇:python 实用小工具
    【Python 开发】第二篇 :Python安装
    【Linux 运维】 安装PHP工具Composer
    【shell 每日一练6】初始化安装Mysql并修改密码
    【zabbix 监控】第三章 创建主机组和主机
    【Docker】第一篇 Docker的初始化安装部署
    【shell 练习5】编写简单的多级菜单
    【zabbix 监控】第二章 安装测试被监控主机
    【zabbix 监控】第一章 zabbix的安装配置
    1数组和字符串题解
  • 原文地址:https://www.cnblogs.com/whwfwfy/p/4335230.html
Copyright © 2020-2023  润新知