ASP.NET Core管道與中介軟體
阿新 • • 發佈:2018-12-17
ASP.NET Core管道和ASP.NET的事件驅動的管道有很大的不同,現在你可以在Startup檔案的Configure方法中呼叫Use,UseWhen,Map,MapWhen,Run方法來為特定的請求增加特定的處理邏輯。可以實現防盜鏈,日誌,許可權認證,事務處理等。
它的管線圖如下:
每個委託均可在下一個委託前後執行操作。 此外,委託還可以決定不將請求傳遞給下一個委託,這就是對請求管道進行短路。 通常需要短路,因為這樣可以避免不必要的工作。
使用 Run,Map 和 Use 擴充套件方法來配置請求委託。 可將一個單獨的請求委託並行指定為匿名方法(稱為並行中介軟體),或在可重用的類中對其進行定義。 這些可重用的類和並行匿名方法即為中介軟體
1. Run方法會使管道短路,所以最好把它放在最後
2. Use不會使管道短路,但也不會主動呼叫下一個管道,必須要顯式呼叫await next();才能進入下一個管道。在UseWhen中可巢狀呼叫Use繼續傳遞。
3. Map和MapWhen它可以匹配基於請求路徑建立請求管道分支,預設會使管道短路,也可以巢狀Use繼續傳遞。
一些常用的中介軟體:
- 異常/錯誤處理
- HTTP 嚴格傳輸安全協議
- HTTPS 重定向
- 靜態檔案伺服器
- Cookie 策略實施
- 身份驗證
- 會話
- MVC