设为首页 加入收藏

TOP

[开源]快速构建验证码(一)
2019-09-17 18:58:24 】 浏览:97
Tags:开源 快速 构建 验证

使用说明

  1. 支持WebForm以及Asp.Net Mvc构建验证码

  2. 项目源码:MasterChief.DotNet.Infrastructure.VerifyCode

  3. Nuget:Install-Package MasterChief.DotNet.Infrastructure.VerifyCode

  4. 欢迎Star,欢迎Issues;

如何使用

  1. 自定义验证码样式,只需要实现ValidateCodeType抽象类即可

    /// <summary>
     ///     图片验证码抽象类
     /// </summary>
     public abstract class ValidateCodeType
     {
         #region Methods
    
         /// <summary>
         ///     创建验证码抽象方法
         /// </summary>
         /// <param name="validataCode">验证code</param>
         /// <returns>Byte数组</returns>
         public abstract byte[] CreateImage(out string validataCode);
    
         #endregion Methods
    
         #region Constructors
    
         #endregion Constructors
    
         #region Properties
    
         /// <summary>
         ///     验证码类型名称
         /// </summary>
         public abstract string Name { get; }
    
         /// <summary>
         ///     验证码Tooltip
         /// </summary>
         public virtual string Tip => "请输入图片中的字符";
    
         /// <summary>
         ///     类型名称
         /// </summary>
         public string Type => GetType().Name;
    
         #endregion Properties
     }
  2. 在WebForm使用说明

    1. 新建一般处理程序

      /// <summary>
      ///     WebFormVerifyCodeHandler 的摘要说明
      /// </summary>
      public class WebFormVerifyCodeHandler : VerifyCodeHandler, IHttpHandler, IRequiresSessionState
      {
          public void ProcessRequest(HttpContext context)
          {
              var validateType = context.Request.Params["style"];
              var buffer = Createva lidateCode(validateType);
              context.Response.ClearContent();
              context.Response.ContentType = MimeTypes.ImageGif;
              context.Response.BinaryWrite(buffer);
          }
      
          public bool IsReusable => false;
      
          public override void OnValidateCodeCreated(HttpContext context, string validateCode)
          {
              context.Session["validateCode"] = validateCode;
          }
      
          public override byte[] Createva lidateCode(string style)
          {
              style = style?.Trim();
              ValidateCodeType createCode;
              switch (style)
              {
                  case "type1":
                      createCode = new ValidateCode_Style1();
                      break;
      
                  default:
                      createCode = new ValidateCode_Style1();
                      break;
              }
      
              var buffer = createCode.CreateImage(out var validateCode);
              OnValidateCodeCreated(HttpContext.Current, validateCode);
              return buffer;
          }
      }
    2. 前端页面调用

      <body>
          <form runat="server">
          <div class="row">
              <div class="col-md-8">
                  <section id="loginForm">
                      <div class="form-horizontal">
                          <h4>Use a local account to log in.</h4>
                          <hr />
                          <asp:PlaceHolder runat="server" ID="ErrorMessage" Visible="false">
                              <p class="text-danger">
                                  <asp:Literal runat="server" ID="FailureText" />
                              </p>
                          </asp:PlaceHolder>
                          <div class="form-group">
                              <asp:Label runat="server" AssociatedControlID="Email" CssClass="col-md-2 control-label">Email</asp:Label>
                              <div class="col-md-10">
                                  <asp:TextBox runat="server" ID="Email" CssClass="form-control" TextMode="Email" />
                                  <asp:RequiredFieldValidator runat="server" ControlToValidate="Email"
                                      CssClass="text-danger" ErrorMessage="The email field is required." />
                              </div>
                          </div>
                          <div class="for
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇WPF 依赖属性&附加属性 下一篇用C#中的键值对遍历数组或字符串..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目