开源.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 ...
随机推荐
- DB门面-数据查询
1.1.1 查询所有数据 $selData = DB::table('article')->get(); 1.1.2 单条件查询 #DB::table('表名')->where('字段', ...
- vue全局引入公共scss样式,子组件调用
前提 已引用并使用scss npm install sass-loader --save-dev npm install node-sass --sava-dev 配置 在vue.config.js中 ...
- 手写 Vue2 系列 之 初始渲染
前言 上一篇文章 手写 Vue2 系列 之 编译器 中完成了从模版字符串到 render 函数的工作.当我们得到 render 函数之后,接下来就该进入到真正的挂载阶段了: 挂载 -> 实例化渲 ...
- Mysql-关系型数据库与非关系型数据库
一.什么是数据库 数据库是数据的仓库. 与普通的"数据仓库"不同的是,数据库依据"数据结构"来组织数据,因为"数据结构",所以我们看到的数据 ...
- 【图片+代码】:GCC 链接过程中的【重定位】过程分析
作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...
- Spring data jpa 报错: java.sql.SQLSyntaxErrorExceptoion: Table ' test.hibernate_sequence' doesn`t exists
错误信息如图: 错误原因:在自定义主键是没有注明自增策略 解决办法:明确主键自增策略,比如 @Entity @Table(name = "t_order") @Data @AllA ...
- swap分区扩展的三种方法
redhat linux swap分区扩展的三种方法 2016-12-26 11:41:08 分类: LINUX 原文地址:redhat linux swap分区扩展的三种方法 作者:quanshen ...
- Ubuntu16.04安装、卸载宝塔软件
宝塔是一款Linux可视化软件 1.一键安装 apt-get install wget && wget -O install.sh http://download.bt.cn/inst ...
- 洛谷P1091 [NOIP2004 提高组] 合唱队形
本题是一个简单的 LIS(最长上升子序列)问题 只是要求俩次最长上子序列而已 很容易的 首先由于是最长上升子序列 所以朴素法的动态规划表达式为 f[i] = max( f[i] , f[ ...
- 七天接手react项目 系列 —— 尾篇(antd 和 mobx)
其他章节请看: 七天接手react项目 系列 尾篇 前面我们依次学习了 react 基础知识.react 脚手架创建项目.react 路由,已经花费了不少时间,但距离接手 spug_web 项目还有一 ...
































