开源.net core 验证码 - LazyCaptcha
LazyCaptcha
介绍
LazyCaptcha是仿EasyCaptcha和SimpleCaptcha,基于.Net Standard 2.1的图形验证码模块。
项目地址
效果展示
CaptchaType | 字体 | 静态图 | 动图 |
---|---|---|---|
DEFAULT | Actionj | ![]() |
![]() |
WORD | Actionj | ![]() |
![]() |
WORD_LOWER | Actionj | ![]() |
![]() |
WORD_UPPER | Actionj | ![]() |
![]() |
WORD_NUMBER_LOWER | Actionj | ![]() |
![]() |
WORD_NUMBER_UPPER | Actionj | ![]() |
![]() |
NUMBER | Fresnel | ![]() |
![]() |
NUMBER_ZH_CN | kaiti | ![]() |
![]() |
NUMBER_ZH_HK | kaiti | ![]() |
![]() |
ARITHMETIC | Actionj | ![]() |
![]() |
ARITHMETIC_ZH | Actionj | ![]() |
![]() |
字体 | 图片 |
---|---|
Actionj | ![]() |
Epilog | ![]() |
Fresnel | ![]() |
Headache | ![]() |
Kaiti | ![]() |
Lexo | ![]() |
Prefix | ![]() |
Progbot | ![]() |
Ransom | ![]() |
Robot | ![]() |
Scandal | ![]() |
安装教程
Install-Package Lazy.Captcha.Core
使用说明(以Github内使用方式为准,这里不做同步更新)
- 注册服务
默认设置
builder.Services.AddDistributedMemoryCache().AddCaptcha();
详细设置
builder.Services.AddDistributedMemoryCache().AddCaptcha(option =>
{
option.CaptchaType = CaptchaType.DEFAULT; // 验证码类型
option.CodeLength = 4; // 验证码长度, 要放在CaptchaType设置后
option.ExpiryTime = TimeSpan.FromSeconds(30); // 验证码过期时间
option.IgnoreCase = true; // 比较时是否忽略大小写
option.ImageOption.Animation = false; // 是否启用动画
option.ImageOption.Width = 130; // 验证码宽度
option.ImageOption.Height = 48; // 验证码高度
option.ImageOption.BackgroundColor = SixLabors.ImageSharp.Color.White; // 验证码背景色
option.ImageOption.BubbleCount = 2; // 气泡数量
option.ImageOption.BubbleMinRadius = 5; // 气泡最小半径
option.ImageOption.BubbleMaxRadius = 15; // 气泡最大半径
option.ImageOption.BubbleThickness = 1; // 气泡边沿厚度
option.ImageOption.InterferenceLineCount = 2; // 干扰线数量
option.ImageOption.FontSize = 28; // 字体大小
option.ImageOption.FontFamily = DefaultFontFamilys.Instance.Actionj; // 字体,中文使用kaiti,其他字符可根据喜好设置(可能部分转字符会出现绘制不出的情况)。
});
- Controller
public class CaptchaController : Controller
{
private readonly ILogger<CaptchaController> _logger;
private readonly ICaptcha _captcha;
public CaptchaController(ILogger<CaptchaController> logger, ICaptcha captcha)
{
_logger = logger;
_captcha = captcha;
}
[HttpGet]
[Route("/captcha")]
public IActionResult Captcha(string id)
{
var info = _captcha.Generate(id);
var stream = new MemoryStream(info.Bytes);
return File(stream, "image/gif");
}
[HttpGet]
[Route("/captcha/validate")]
public bool Validate(string id, string code)
{
if (!_captcha.Validate(id, code))
{
throw new Exception("无效验证码");
}
// 具体业务
// 为了演示,这里仅做返回处理
return true;
}
}
开源.net core 验证码 - LazyCaptcha的更多相关文章
- 微软开源.NET Core的执行引擎CoreCLR{转载}
继去年12月宣布.NET Core开源之后,微软拥抱开源的决心又向前迈了一步,Microsoft于昨日在 .NET Framework Blog上 宣布开源.NET Core 的执行引擎 CoreCL ...
- .NET平台系列12 .NET未来之开源.NET Core
系列目录 [已更新最新开发文章,点击查看详细] 微软于2014年11月推出了.NET Core 1.0..NET Core的目标是从我们在过去12年中对.NET Framework的构建.交付 ...
- 【干货】”首个“ .NET Core 验证码组件
前言 众所周知,Dotnet Core目前没有图形API,以前的System.Drawing程序集并没有包含在Dotnet Core 1.0环境中.不过在dotnet core labs项目里可以见到 ...
- N[开源].NET CORE与MySql更配, MySqlSugar ORM框架 3.x
MySqlSugar 3.X API 作为支持.NET CORE 为数不多的ORM之一,除了具有优越的性能外,还拥有强大的功能,不只是满足你的增,删,查和改.实质上拥有更多你想像不到的功能,当你需要实 ...
- .Net core验证码生成
首先,项目添加对ZKWeb.System.Drawing的引用: 生成验证码代码如下: public class VierificationCodeServices { /// <summary ...
- asp.net core 验证码方案
/// <summary> /// 图片验证码 /// </summary> public class VerificationCodeServices { /// <s ...
- .NET Core第三方开源Web框架YOYOFx
YOYOFx框架 YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台. 本着学习的态度,造了这个轮子,也是为了更好的了解各个框架的原理和有点,还希望可 ...
- Core第三方开源Web框架
NET Core第三方开源Web框架YOYOFx YOYOFx框架 YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台. 本着学习的态度,造了这个 ...
- Asp.net Core中使用Session
前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...
随机推荐
- oop简易封装增删改查
//注意要先引入含有封装类的文件文件:如下: <?phpclass Db{ public $host='127.0.0.1'; public $user='root'; public $pass ...
- tp5 git 常见命令
git clone git add . # 跟踪所有改动过的文件 git commit -m "commit message" # 提交所有更新过的文件 git checkout ...
- tensorflow源码解析之framework-node
目录 什么是node node_def 关系图 涉及的文件 迭代记录 1. 什么是node TF中的计算图由节点组成,每个节点包含了一个操作,表示这个节点的作用,比如,如果一个节点的作用是做矩阵乘法, ...
- 一比一还原axios源码(一)—— 发起第一个请求
上一篇文章,我们简单介绍了XMLHttpRequest及其他可以发起AJAX请求的API,那部分大家有兴趣可以自己去扩展学习.另外,简单介绍了怎么去读以及我会怎么写这个系列的文章,那么下面就开始真正的 ...
- Golang 语言特性
1. 函数 与c 语言不同,go 语言中,函数的参数和返回值都由栈来存储. 传值:函数调用时会复制参数,被调用方和调用方持有两份不相关的两份数据 传引用:函数调用时会传递参数指针,被调用方和调用方持有 ...
- SpringBoot在线预览PDF文件(引用pdf.js工具)
本项目Demo使用了PDF.js插件实现PDF在线阅读功能PDF.js插件下载地址 实测能用! 1.创建SpringBoot项目,目录结构如下: 2.进行项目配置: pom.xml: <proj ...
- LinuxCNC中RS-274/NGC解析器的编译和使用
原文 http://blog.sina.com.cn/s/blog_a2a6dd380102vrai.html LinuxCNC是一个著名的开源数控软件,目前最新发行版本是:LinuxCNC 2.6. ...
- c#的委托实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 写clone()方法时,通常都有一行代码,是什么?
clone 有缺省行为,super.clone();因为首先要把父类中的成员复制到位,然后才是复制自己的成员.
- spring学习一:spring入门及相关概念介绍
1:Spring的概念:(03年兴起) (1) 开源的轻量级的框架(无需复杂的环境,不依赖其他) (2) 一站式框架(Spring在javaee的三层结构中,对每一层都提供不同的解决技术: ...