0

我試圖找回控制器和動作,我以路由控制器和行動在中間件

var routeData = context.GetRouteData(); 

中間件的Invoke方法裏面嘗試了這一點,但它產生空每次。

是否有可能在中間件中檢索路由數據?

我想要實現的是檢查請求的操作是否具有[RequireToken]屬性,如果是,它將檢查傳入標頭是否有特定的標記。

回答

3

動作/控制器上下文非常特定於中間件管道的MVC部分。無法在MVC管道本身之外檢索路徑數據。

爲了達到所期望的行爲,你應該看看如何實現一個ActionFilter代替:https://docs.asp.net/en/latest/mvc/controllers/filters.html

+0

這正是我一直在尋找!我設法通過使用ActionFilter來操作動作結果,這解決了我的問題。 – thax