▪️ASP.NET - Middleware
2025-5-9
| 2025-5-9
字數 499閱讀時間 2 分鐘

什麼是 Middleware?

Middleware 是 ASP.NET Core 中請求處理管線的一部分。當一個 HTTP 請求進入應用程式時,它會依序通過一連串的 Middleware,每個 Middleware 可以:
  • 處理請求(Request)
  • 呼叫下一個 Middleware
  • 處理回應(Response)

✅ Middleware 的用途包括:

  • 驗證與授權
  • Logging
  • CORS 控制
  • 錯誤處理
  • 請求修改(如 URL Rewrite)
  • 回應緩存、壓縮等

Middleware 的執行生命週期

  1. 請求進入時,Middleware 順序執行(如同鏈條)
  1. 若未呼叫 next(),管線會在該點終止
  1. 處理完畢後,Middleware 以相反順序處理回應
請求與回應是「雙向通行」,Middleware 有機會攔截與修改兩邊的流程。

範例:使用內建 Middleware

Program.csStartup.cs 中設定:
這些 UseXXX() 方法就是 Middleware 的註冊方式。

建立自訂 Middleware

✅ 寫一個自訂 Middleware 類別:

✅ 在 Program.cs 中註冊:


Middleware 建立方式比較

方法
描述
app.Use()
標準註冊 Middleware
app.Run()
終止請求管線,不能呼叫下一個 Middleware
app.Map()
根據路徑條件分支不同 Middleware

範例:

執行順序會是:

Middleware 的注意事項

  • 順序很重要:錯誤的順序可能導致功能失效(如在 UseRouting() 前使用 UseAuthorization() 無效)
  • 避免阻塞請求(如同步方法導致死鎖)
  • 多用 async/await 提高效能

  • Dotnet
  • 計算資料長度資安 - FIDO2
    Loading...