The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何縮減 WSL 2 與 Docker Desktop WSL 2 backend 的 VHDX 虛擬硬碟大小

我的電腦有安裝 WSL 2 與 Docker Desktop WSL 2 backend,這兩個分別各使用了一個 ext4.vhdx 虛擬硬碟,我在使用 WSL 2 與 Docker 一段時間之後,這兩個虛擬硬碟變的非常大,分別佔用了 39GB 與 79GB 之多,我想是時候來壓縮這兩個虛擬硬碟了。這篇文章我就來說明壓縮 vhdx 的方法。

... 繼續閱讀 ...

如何在現有 ASP.NET Core 專案加入 Seq 記錄提供者

我經常推薦 Seq 這套記錄伺服器(Log Server),如果要將 ASP.NET Core 的 Log 全部送到 Seq 儲存的話,其實非常簡單,因為官方的 Seq.Extensions.Logging 套件預設就支援 Microsoft.Extensions.Logging 的擴充,提供一個現成的 Logging Provider 讓你很方便的將 Seq 快速加入到 ASP.NET Core 之中。這篇文章我就來說說這個設定的過程。

... 繼續閱讀 ...

部署 Azure App Service 最簡單的方法:使用 cURL 直接部署 ZIP 或 URL

我們在設定 CD 持續部署的時候,有好多種方法可以部署檔案到 Azure App Service,早期比較常用的是部署 ARM 部署,但部署經常會遇到 Azure AD 設定 Service Principal 等權限問題。後來我們大多改用 Web Deploy 來部署,只要有發行設定檔(Publish Profile)就可以輕鬆部署,不過 .NET Core 的 DLL 經常會被鎖定而無法更新的問題也很討厭。近期我們都開始改用 ZIP 或 URL 部署,其部署方法不但簡單,而且部署速度快,部署時更不會遇到檔案鎖定等問題,實在非常不錯。這篇文章我就來介紹這個部署方法。

... 繼續閱讀 ...

簡介 ASP.NET Core 資料保護 (Data Protection)

ASP.NET Core Data Protection 提供了一組加密 API (cryptographic API) 來保護資料安全,其中還自動包含了密鑰管理(key management)與密鑰更換(key rotation)等機制。這套技術主要用來長期取代 .NET Framework 的 ASP.NET 1.x ~ 4.x 中 web.config 定義的 <machineKey> 元素,我研究之後發現這套機制不但簡單好上手,背後的金鑰管理也有一定程度的複雜度,可算是相當不錯的資料保護解決方案。這篇文章我想帶大家快速上手 ASP.NET Core 資料保護機制,並透過一個簡單範例說明他的加解密的用法。

... 繼續閱讀 ...

整理各家 OAuth 2.0 平台提供的應用程式授權管理資訊

我們都知道 OAuth 2.0 提供了一系列授權的流程標準,但各家 OAuth 2.0 提供者通常都有各自的授權管理機制,這部分並沒有規範在 OAuth 2.0 規格中,因此不同平台之間的實作差異相當大。今天我以「使用者」的角度來看「授權」這件事,當我們授權給「用戶端」應用程式之後,若想撤銷授權,這篇文章特別整理各個不同平台撤銷權限的主要網址。

... 繼續閱讀 ...