资源说明:本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能。
通过测试的系统:
Windows 8.1 64bit
Ubuntu Server 16.04 LTS 64bit
Fedora 24 64bit
CentOS 7.2 64bit
可以实现以下功能:
Open jpg, bmp, ico, png
Save jpg, bmp, ico, png
Resize image
Draw graphics with brush and pen
Open font and draw string
以上是官方给的资料。
No.1 项目引入ZKWeb.System.
在.NET Core环境中,为了实现图形验证码功能,我们可以利用第三方库ZKWeb.System.Drawing。这篇文章将指导您如何在不同的操作系统上,如Windows、Ubuntu、Fedora和CentOS,使用该库来创建和部署验证码服务。
我们需要引入ZKWeb.System.Drawing库到我们的项目中。这可以通过NuGet包管理器来完成,对于不熟悉NuGet的新手,可以在搜索引擎中搜索“NuGet 安装包”来找到具体步骤。一旦成功安装,这个库将为.NET Core提供对图像处理和图形绘制的支持,使我们能够在没有Windows GDI+的情况下生成验证码。
接下来,我们将看到一个简单的验证码生成示例代码。这段代码定义了验证码的尺寸、字体大小、颜色以及字体列表。随机数生成器用于确定颜色、字体和验证码的字符。验证码的字符集通常会排除容易引起混淆的字符,以提高安全性。然后,创建一个Bitmap对象作为画布,并使用Graphics对象进行绘图。在这个过程中,我们会先绘制随机的噪线以增加验证码的复杂性,然后使用随机选择的颜色和字体在画布上绘制验证码字符串。验证码图片会被保存到内存流中并以“image/Png”格式返回。
在部署阶段,需要注意的是.NET Core应用程序可以在不同的操作系统上运行,但某些依赖可能需要额外安装。例如,在Ubuntu 14.04及更高版本上,需要安装libgdiplus包,因为ZKWeb.System.Drawing在非Windows系统上依赖于这个库。安装方法在文中已经给出,对于其他Linux发行版,如Fedora 23和CentOS 7,也有相应的安装命令。这些命令会确保系统具有必要的库来支持图形绘制功能。
在实际应用中,验证码功能不仅用于网站的安全验证,如登录或注册时防止机器人操作,还常用于防止垃圾邮件、自动填充等。ZKWeb.System.Drawing库提供了一个跨平台的解决方案,使得开发者无需受限于特定的操作系统就能在.NET Core中实现验证码功能。
总结来说,本文重点介绍了如何在.NET Core环境下利用ZKWeb.System.Drawing库创建图形验证码。这个过程包括了库的引入、验证码的生成代码以及在不同操作系统上的部署步骤。通过这个教程,开发者可以轻松地将验证码功能集成到自己的.NET Core应用中,从而提高应用的安全性和用户体验。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。