zoukankan      html  css  js  c++  java
  • ashx-auth-黑色简洁验证码

    ylbtech-util: ashx-auth-黑色简洁验证码

     ashx-auth-黑色简洁验证码

    1.A,效果图返回顶部
     
    1.B,源代码返回顶部

    /ImageUniqueCode.ashx

    <%@ WebHandler Language="C#" Class="ImageUniqueCode" %>
    
    using System;
    using System.Web;
    using System.Drawing;
    using System.Text;
    
    public class ImageUniqueCode : IHttpHandler, System.Web.SessionState.IRequiresSessionState
    {
        
        public void ProcessRequest (HttpContext context) {
            context.Response.ContentType = "image/gif";
            //建立Bitmap对象,绘图
            Bitmap basemap = new Bitmap(160, 60);
            Graphics graph = Graphics.FromImage(basemap);
            graph.FillRectangle(new SolidBrush(Color.White), 0, 0, 160, 60);
            Font font = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel);
            Random r = new Random();
            string letters = "ABCDEFGHIJKLMNPQRSTUVWXYZ0123456789";
            string letter;
            StringBuilder s = new StringBuilder();
    
            //添加随机字符
            for (int x = 0; x < 4; x++)
            {
                letter = letters.Substring(r.Next(0, letters.Length - 1), 1);
                s.Append(letter);
                graph.DrawString(letter, font, new SolidBrush(Color.Black), x * 38, r.Next(0, 15));
            }
    
            //混淆背景
            Pen linePen = new Pen(new SolidBrush(Color.Black), 2);
            for (int x = 0; x < 6; x++)
                graph.DrawLine(linePen, new Point(r.Next(0, 159), r.Next(0, 59)), new Point(r.Next(0, 159), r.Next(0, 59)));  
    
            //将图片保存到输出流中      
            basemap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
            context.Session["ImageUniqueCode"] = s.ToString();
            context.Response.End();
        }
     
        public bool IsReusable {
            get {
                return true;
            }
        }
    
    }
    Attach
    /FastFeedBack.ashx  【处理页面】
    <%@ WebHandler Language="C#" Class="FastFeedback" %>
    
    using System;
    using System.Web;
    
    public class FastFeedback : IHttpHandler, System.Web.SessionState.IRequiresSessionState
    {
        //最终状态
        public enum FeedbackState
        {
            UniqueCodeError = 1,
            Succeed = 5,
            Error = 10,
            Null = 20
        }
        
        public void ProcessRequest (HttpContext context) {
            context.Response.ContentType = "text/plain";
            context.Response.CacheControl = "no-cache"; //清空缓存
            
            string code = context.Request["SecurityCode"];
            string message = context.Request["Message"];
    
            if (string.IsNullOrEmpty(code) || string.IsNullOrEmpty(message))
            {
                context.Response.Write(FeedbackState.Null.ToString());
                context.Response.End();
                return; 
            }
    
            try
            {
                if (code.ToUpper() == context.Session["ImageUniqueCode"].ToString())
                {
                    //执行成功,完成其他任务
                    //....do.....
                    context.Response.Write(FeedbackState.Succeed.ToString());
    
                }
                else
                {
                    context.Response.Write(FeedbackState.UniqueCodeError.ToString());
    
                }
            }
            catch (Exception ex)
            {
                context.Response.Write(FeedbackState.Error.ToString());
            }
            finally
            {
                context.Response.End(); 
            }
        }
     
        public bool IsReusable {
            get {
                return false;
            }
        }
    
    }
    View Code
    1.C,下载地址返回顶部

     

    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Spring IOC(二)beanName 别名管理
    Spring IOC(六)依赖查找
    Spring IOC(五)依赖注入
    Spring IOC(七)类型推断
    Spring 循环引用(二)源码分析
    Spring 循环引用(一)一个循环依赖引发的 BUG
    Spring IOC(四)FactoryBean
    Spring 中的类加载机制
    Spring IOC(三)单例 bean 的注册管理
    Spring Environment(三)生命周期
  • 原文地址:https://www.cnblogs.com/ylbtech/p/3319705.html
Copyright © 2011-2022 走看看