使用.Net Core 2.1開發Captcha驗證碼服務 開發工具:Visual Studio 2017 15.7.3 開發平臺:64位 Windows 10 目標框架:.NET Core 2.1 完成度:已實現 Github地址: "https://github.com/PuzzledAlien ...
使用.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應用程式。
使用API模塊足以。預設是配置HTTPS,先保持預設不變,看下https怎麼配置。點擊確定,稍等幾秒鐘創建項目完成。
查看解決方案資源管理器,發現目錄結構異常簡潔。先不做任何處理,直接Debug,彈出提示(此項目已配置使用SSL)如下圖。
上述截圖中sslPort是44303,取消配置HTTPS的方法是將sslPort的值改為0。修改之後就不會走https了,簡單明瞭的邏輯,就問你服不服?!
設計介面
計劃兩個介面,一個是獲取驗證碼的介面,一個是驗證介面。
圖片驗證碼首先是個圖片(純廢話),少不了使用一個很流行的繪圖API System.Drawing。但是.NET Core平臺用不了System.Drawing。代替方案有
- zkweb大牛移植修改mono的System.Drawing。來自博客園的文章推薦.Net Core上用於代替System.Drawing的類庫
- 微軟官方出的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 模塊。
使用 IIS 在 Windows 上托管 ASP.NET Core 提到如何安裝該模塊。
打開下載頁
點擊Runtime,.NET Core 2.1 Runtime (v2.1.0)
下載安裝。
準備工作搞定。
使用 IIS 在 Windows 上托管 ASP.NET Core 的步驟精簡寫,如下:
- 發佈到目標機器
- 如果沒有安裝IIS,安裝IIS
- 新建站點
- 站點對應的應用程式池基本設置中選擇“無托管代碼”
- 嘗試訪問
測試頁面如下圖,嘗試訪問:
完工!!