使用.Net Core 2.1开发Captcha图片验证码服务

更新后续篇:Captcha服务(后续1)

使用.Net Core 2.1开发Captcha验证码服务

开发工具:Visual Studio 2017 15.7.3
开发平台:64位 Windows 10
目标框架:.NET Core 2.1
完成度:已实现
Github地址:https://github.com/PuzzledAlien/Captcha

准备开发环境,新建项目

安装SDK
打开下载页面 https://www.microsoft.com/net/download/windows
下载对应的SDK,当前版本是2.1 SDK (v2.1.300)
从名字能看出来微软更快迭代更新的想法。下载之后正确安装。这样保证新建项目时可选ASP.NET Core Web应用程序。
使用.Net Core 2.1开发Captcha图片验证码服务
使用.Net Core 2.1开发Captcha图片验证码服务
使用API模块足以。默认是配置HTTPS,先保持默认不变,看下https怎么配置。点击确定,稍等几秒钟创建项目完成。
使用.Net Core 2.1开发Captcha图片验证码服务
查看解决方案资源管理器,发现目录结构异常简洁。先不做任何处理,直接Debug,弹出提示(此项目已配置使用SSL)如下图。
使用.Net Core 2.1开发Captcha图片验证码服务
上述截图中sslPort是44303,取消配置HTTPS的方法是将sslPort的值改为0。修改之后就不会走https了,简单明了的逻辑,就问你服不服?!

设计接口

计划两个接口,一个是获取验证码的接口,一个是验证接口。
图片验证码首先是个图片(纯废话),少不了使用一个很流行的绘图API System.Drawing。但是.NET Core平台用不了System.Drawing。代替方案有

  1. zkweb大牛移植修改mono的System.Drawing。来自博客园的文章推荐.Net Core上用于代替System.Drawing的类库
  2. 微软官方出的API实现 System.Drawing.Common。来自Damir Dobric的文章推荐How to use System.Drawing in .NET Core?

我选择了微软官方的实现System.Drawing.Common,更新迭代有保障。github可看源码,地址https://github.com/dotnet/corefx/tree/5b7674e4ae5cc782e99f50b2919dfdeb29106a46/src/System.Drawing.Common

不具体写代码逻辑,可详细看Github,自认写的还算结构清晰明了。

部署Windows,IIS+.NET Core 2.1

参考微软官方出版中文文档,微软对中文开发者的友好度越来越高了。
使用 IIS 在 Windows 上托管 ASP.NET Core
环境准备:安装.NET Core 2.1 SDK
根据文章IIS 模块与 ASP.NET Core 提到的最小模块配置

要求运行 ASP.NET Core 应用的模块只有匿名身份验证模块和 ASP.NET Core 模块。

源代码可查看Github https://github.com/aspnet/AspNetCoreModule
打开IIS管理器,点击“模块”,之后点击“打开功能”,查看所有模块,发现缺少ASP.NET Core 模块。
使用.Net Core 2.1开发Captcha图片验证码服务
使用.Net Core 2.1开发Captcha图片验证码服务
使用.Net Core 2.1开发Captcha图片验证码服务

使用 IIS 在 Windows 上托管 ASP.NET Core 提到如何安装该模块。
打开下载页
使用.Net Core 2.1开发Captcha图片验证码服务
点击Runtime,.NET Core 2.1 Runtime (v2.1.0)
使用.Net Core 2.1开发Captcha图片验证码服务
下载安装。
准备工作搞定。
使用 IIS 在 Windows 上托管 ASP.NET Core 的步骤精简写,如下:

  1. 发布到目标机器
  2. 如果没有安装IIS,安装IIS
  3. 新建站点
  4. 站点对应的应用程序池基本设置中选择“无托管代码”
  5. 尝试访问

测试页面如下图,尝试访问:
使用.Net Core 2.1开发Captcha图片验证码服务

完工!!

上一篇:MapReduce 多表连接


下一篇:Java网络编程和NIO详解5:Java 非阻塞 IO 和异步 IO