基于SkiaSharp的ASP.NET Core 6.0跨平台图形验证码
由于.Net 团队已经在.net 6.0版本中将System.Drawing.Common 标记为仅在Windows上支持,受此中断性变更,由该库编写的.net 6.0程序无法在非windows平台上正常工作;官方参考链接:中断性变更:仅在 Windows 上支持 System.Drawing.Common - .NET | Microsoft Learn。
所以我分享一个我开发的图形验证码方案,github链接:lhdboy/ClickableCaptcha,首先看实际效果截图:
PC版:
手机版截图(带点击效果):
色盲/色弱模式:
ClickableCaptcha是一个使用SkiaSharp类库的可点击图形验证码,这个图形验证码会生成6*6网格的图像,用户根据底部的提示点击图片内正确的相应位置。
自定义
前端的宽高是根据返回的图片大小在css中硬编码的,如需要修改网格数量或者尺寸,请务必修改前端css代码中的样式。
部署
目前只引用SkiaSharp包,如需部署需要安装对应的SkiaSharp.NativeAssets包:
例如Linux:
<PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.3" />