分享

利用.Net Core实现的一个图形验证码功能

天网云 发表于 2020-5-15 12:43:08 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 7989
SimpleCaptcha是一个操纵简朴,基于.Net Standard 2.0的图形考证码模块。它的灵感滥觞于Edi.Wang的那篇文章https://edi.wang/post/2018/10/13/generate-captcha-code-aspnet-core,我将其中天生考证码的代码抽掏出去举办启拆获得了那个模块。上面引见一下操纵方法。
底子操纵方法

装置SimpleCaptcha

正在Nuget中搜刮装置SimpleCaptcha
网络编程-云社区利用.Net Core实现的一个图形验证码功能byun.com(1)
                               
登录/注册后可看年夜图

装置缓存模块

SimpleCaptcha依托Microsoft.Extensions.Caching.Abstractions模块用去存储考证码,以是您须要正在项目中按照本人的须要装置响应的完成包,例如那里我操纵
  1. Microsoft.Extensions.Caching.Memory
复造代码
Startup

修正Startup.cs文件注进响应的效劳:
  1. services.AddMemoryCache()
  2.     .AddSimpleCaptcha(builder =>
  3.     {
  4.         builder.UseMemoryStore();
  5.     });
复造代码
注进ICaptcha接心

正在Controller中注进中心接心ICaptcha
  1. private readonly ICaptcha _captcha;

  2. public HomeController(ICaptcha captcha)
  3. {
  4.     _captcha = captcha;
  5. }
复造代码
天生考证码

操纵ICaptcha接心的
  1. Generate
复造代码
办法天生考证码
  1. public IActionResult Captcha(string id)
  2. {
  3.     var info = _captcha.Generate(id);
  4.     var stream = new MemoryStream(info.CaptchaByteData);
  5.     return File(stream, "image/png");
  6. }
复造代码
考证

操纵ICaptcha接心的
  1. Validate
复造代码
办法对用户的提交举办考证
  1. public IActionResult Validate(string id, string code)
  2. {
  3.     var result = _captcha.Validate(id, code);
  4.     return Json(new { success = result });
  5. }
复造代码
完好的例子能够正在那里找到:https://github.com/1992w/SimpleCaptcha/tree/master/src/SimpleCaptcha.Demo
设置

SimpleCaptcha预留了一些默许的设置项,您能够按照须要自止修正。
设置考证码少度

  1. services.AddSimpleCaptcha(builder =>
  2. {
  3.     builder.AddConfiguration(options =>
  4.     {
  5.         options.CodeLength = 6;
  6.     });
  7. });
复造代码
设置图片大小

  1. services.AddSimpleCaptcha(builder =>
  2. {
  3.     builder.AddConfiguration(options =>
  4.     {
  5.         options.ImageWidth = 100;
  6.         options.ImageHeight = 36;
  7.     });
  8. });
复造代码
设置辨别大小写

默许状况下考证没有辨别大小写
  1. services.AddSimpleCaptcha(builder =>
  2. {
  3.     builder.AddConfiguration(options =>
  4.     {
  5.         options.IgnoreCase = false;
  6.     });
  7. });
复造代码
设置考证码有用期

考证码默许的有用期为5分钟
  1. services.AddSimpleCaptcha(builder =>
  2. {
  3.     builder.AddConfiguration(options =>
  4.     {
  5.         options.ExpiryTime =TimeSpan.FromMinutes(10);
  6.     });
  7. });
复造代码
设置字符散

SimpleCaptcha供给了
  1. ICaptchaCodeGenerator
复造代码
接心用去天生字符,默许的完成是从字符散
  1. 012346789ABCDEFGHIJKLMNOPQRSTUVWXYZ
复造代码
中随机天生,您能够担当ICaptchaCodeGenerator接话柄现本人的需供。
  1. public class MyCaptchaCodeGenerator : ICaptchaCodeGenerator
  2. {
  3.     public string Generate(int length)
  4.     {
  5.         throw new NotImplementedException();
  6.     }
  7. }
复造代码
设置本人的天生器

  1. services.AddSimpleCaptcha(builder =>
  2. {
  3.     builder.AddConfiguration(options =>
  4.     {
  5.         options.CodeGenerator = new MyCaptchaCodeGenerator();
  6.     });
  7. });
复造代码
设置本性化的图片

假如默许天生的图片您以为没有契合您的请求,您能够完成
  1. ICaptchaImageGenerator
复造代码
接心举办修正
  1. public class CaptchaImageGenerator : ICaptchaImageGenerator
  2. {
  3.     public byte[] Generate(int width, int height, string captchaCode)
  4.     {
  5.         throw new NotImplementedException();
  6.     }
  7. }
复造代码
  1. services.AddSimpleCaptcha(builder =>
  2. {
  3.     builder.AddConfiguration(options =>
  4.     {
  5.         options.ImageGenerator = new CaptchaImageGenerator();
  6.     });
  7. });
复造代码
源代码

一切源代码能够正在那里获得:https://github.com/1992w/SimpleCaptcha
到此那篇闭于操纵.Net Core完成的一个图形考证码的文章便引见到那了,更多相干.Net Core图形考证码内乱容请搜刮剧本之家从前的文章或担当浏览上面的相干文章祈望大家当前多多撑持剧本之家!
                                                         
       以上所述是云社区专客手艺小编经心给各人收拾整顿的本常识相干引见;期望对亲们进修事情提拔有所协助。                                     若有任何疑问、相干分享交换等,可正在本文章底部留行或批评; 欢送IT手艺妙手亦或菜鸟们各持己见、万马齐喑,让云社区成为IT手艺更好的交换进修仄台;   正在此更万分感激各人对云社区专客网站的撑持!                                                                                                                                                                                                                                                                                            
滥觞:云社区转戴;            免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
回复

使用道具 举报

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

香港云服务器免费试用