在 ASP.NET Core 中自訂 AuthenticationScheme
ASP.NET Core 有提供一些預設的 authentication scheme 可以使用,常見的有 Cookie Authentication 或是 JWT Bearer Token。當然,我們如果有其他需求也可以依照需要的效果自訂 authentication scheme 以滿足特殊規則的驗證方法。要建立一個 authentication scheme 需要包含 scheme 的名字、AuthenticationHandler 以及 AuthenticationSchemeOptions。
ASP.NET Core 中的驗證
請求的驗證是很多系統都會需要實作的功能之一,本篇筆記介紹在 ASP.NET Core 中驗證的機制以及在驗證中各個角色的負責項目。本篇筆記會介紹 Authentication middleware、authentication scheme 及 authentication handler 之間的關係,以及 authentication handler 中 Authenticate、Challenge 及 Forbid 分別代表的意義以及觸發的時機。
ASP.NET Core 中的路由
ASP.NET Core中的路由可以分為慣例路由(Conventional routing)和屬性路由(Attribute routing),慣例路由通常用在Controller和View,屬性路由通常用在REST API,這篇筆記記錄屬性路由的相關設定。
Middleware in ASP.NET Core
ASP.NET Core中,請求與回應會經過一連串的Middleware(中介軟體),每個Middleware都有各自的職責,例如用於驗證、授權或是錯誤處理等。當請求或回應流經Middleware時,Middleware會處理並選擇是否將請求傳遞到下一個Middleware,或者是將其短路。
ASP.NET Core 基礎
.NET Core 可以建立Web及桌面應用程式,本篇筆記記錄 ASP.NET Core 建立 Web 應用程式時的基礎概念。
base 關鍵字
base 關鍵字用於存取基底類別的成員,base包含「取用基底類別的函式」和「呼叫基底類別的建構式」兩種使用時機。
Generic Delegates 泛型委派
泛型允許我們在定義時先不決定型別,在實例化時才依照呼叫者傳入的型別決定其型別。而泛型委派就是將委派以泛型的方式實作,使得委派可以在實例化時才指定其回傳值及型別。.NET提供兩個好用的泛型委派,分別是 System.Action 和 System.Func,多數情況下不需要自定義泛型委派。
Delegates 委派
我們可以把委派想像成是一個沒有內容的函式,可以被用來當作是某個函式的臨時替身,當我們決定好要用哪個函式時再將真正的函式變成委派實體,並呼叫委派實體以執行該函式。