在微軟官網有提供建議 Middleware 加入的順序,由於設定也需要一些細節,
就順手紀錄一下,避免煩心。
由於 Middleware 是由一連串的委派串接,預設正常情形下會是一個接著一個執行
下去,故透過以下的圖片更能理解
由上圖可看出,自訂的 Middleware 建議會是在 Authorication(授權) 之後,即 Custome
middleware 區塊,而ExceptionHandlerMiddleware 則是建議 Pipeline 一開始的時候
就加入,主要是因為若後續的 Middleware 有例外發生時,是可以攔截的到錯誤的;
當 Request 走到 Endpoint 時,訊息流就會轉向 Response,同樣一層層傳出。
提醒一下,若 Endpoint 是 MVC 模式,則 ActionFilter 同樣遵循原本 asp.net mvc 的
機制。可參考下圖
以下列出程式碼的順序,僅供參考,由於程式有點長所以切成兩張
有幾點需要注意
兩個驗證的 Middleware 中 app.UseAuthentication()、app.UseAuthorization()
需要在 ConfigureServices 方法中加入對應的Service
還有若有使用 Session Middleware ,同樣需要注入 Service ,如下圖,
是的的它需要連 DistributedMemoryCache 一起加入
最後是在 UseEndpoints 中,若使用 MapControllers ,則需要注入 Controllers
順帶一提 Endpoints 同樣可以加入其他路由,如MVC 路由或 RazorPage 路由
等等,可參考下圖,而這些路由也需要注入對應的 Service,這邊就不一一列出
沒有留言:
張貼留言