The Will Will Web

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

如何在現有 ASP.NET Core 網站加入 Azure AD 的 OpenId Connect 登入

我們公司採用 Microsoft 365 辦公協作環境,這也意味著背後一定使用了 Azure AD 目錄服務,因此我們可以直接拿 Azure AD 作為公司的 OAuth 2.0 + OpenId Connect (OIDC) 認證與授權平台,因此開發公司內部應用程式就變的非常容易。這篇文章我將說明要將一個 ASP.NET Core 網站加入 Azure AD 的身份驗證流程,以及使用時的注意事項。

... 繼續閱讀 ...

如何將一個 ASP.NET Core 網站快速加入 LINE Login 功能 (OpenID Connect)

前幾天原本想用 ASP.NET Core 寫一個最簡單的 LINE Login 範例程式出來,結果想不到這麼簡單的功能,卡關了兩天才找出解決之道。如果單純的透過 OAuth 2.0 授權流程來取得 Access Token 與 ID Token 其實還蠻簡單的。但是若希望可以做到 OpenID Connect 流程中自動透過 JWK (RFC 7517: JSON Web Key) 來驗證 Token 的有效性,這時可以直接使用 ASP.NET Core 內建的 Microsoft.AspNetCore.Authentication.OpenIdConnect 套件來完成。不過當方便的套件遇到特殊的實作時,那麼就是一場災難啦。這篇文章我打算來說說這次的踩雷之旅!

... 繼續閱讀 ...

如何在 ASP.NET Core 漂亮的建立 Query String 查詢字串

我們在建立含有 Query String 網址時,若是用字串串接的方式來實作,程式碼會相對的比較醜一點。從 ASP.NET Core 1.0 開始,就有好幾個專門用來建立 Query String 的類別,這些類別不但可以提升程式碼的可讀性,所有的 Query String 也都會進行必要的 URL Encode 動作,讓你的網址更符合國際標準,建議可以多加利用。

... 繼續閱讀 ...

在不同的作業系統下如何設定包含小數點的環境變數名稱

一般來說,我們極少會在環境變數上使用小數點( . )當成環境變數名稱來使用,但是在特定應用程式的條件下,可能被迫需要做出這樣的設定。像透過環境變數設定 .NET 應用程式的 LogLevel 就很可能會用到小數點來進行設定,本篇文章我將說明不同作業系統下的設定方式與潛在問題。

... 繼續閱讀 ...

如何在 ASP.NET Core 6 使用 Token-based 身份認證與授權 (JWT)

ASP.NET Core 6 提供了一組 Minimal APIs 可以大幅簡化啟動 ASP.NET Core 應用程式的程式碼,但由於註冊服務到 DI 容器的 API 被簡化了,因此程式的寫法有些差異。今天這篇文章,我打算重新撰寫 如何在 ASP.NET Core 3 使用 Token-based 身分驗證與授權 (JWT) 這篇文章,改以 ASP.NET Core 6 Minimal APIs 來進行實作。

... 繼續閱讀 ...

ASP.NET Core 如何部署到 CentOS 7 作業系統

最近有個專案要上線,客戶提供一台 CentOS 7 的主機給我們部署,但是官網的文件主要都是以 Ubuntu 作業系統為主,並沒有完整的文件說明如何在 CentOS 安裝,我在架設 Labs 環境安裝的時候,也發現部署過程真的有點地雷,所以我打算用這篇文章說明一下實際的安裝步驟。

... 繼續閱讀 ...

如何啟用 ASP.NET Core 6.0 部署到 IIS 的陰影複製 (Shadow-copying) 功能

ASP.NET Core 可以部署至 IIS 網站伺服器,但一直以來都有一個毛病,那就是 ASP.NET Core 網站在運行的過程中,許多 *.dll 檔案會被鎖定,導致這些檔案無法順利更新,必須暫時關閉應用程式集區才能順利對網站進行部署。從 ASP.NET Core 6.0 開始,ASP.NET Core Module 包含了一項實驗性功能名叫 陰影複製(Shadow-copying),這個功能可以徹底解決網站運行中無法部署程式的問題。

... 繼續閱讀 ...

體驗全新 ASP.NET Core 6.0 專案範本與 C# 10 語言特性

我的 ASP.NET Core 6 開發實戰:從入門到進階 課程將在 2021/11/13 開始,就在 .NET 6.0 推出後 4 天。由於 .NET 6.0 與 C# 10 即將推出,全新的 Top-level statements 語言特性,可以大幅簡化 .NET 應用程式的啟動程式碼,這個變化自然也會影響到 ASP.NET Core 6.0 的啟動方式,許多 .NET Core 的老手看到全新的 Hosting Model (裝載模型) 可能會非常不適應,這篇文章主要用來解決大家的疑惑。

... 繼續閱讀 ...