中间件中的路由控制器和动作

Route controller and action in middleware

我正在尝试检索控制器和操作,我已经尝试使用

var routeData = context.GetRouteData();

在中间件的 Invoke 方法中,但每次都返回 null。

是否可以在中间件中检索路由数据?

我想要实现的是检查请求的操作是否具有 [RequireToken] 属性,如果有,它将检查传入的 headers 是否有特定令牌。

action/controller 上下文非常特定于中间件管道的 MVC 部分。无法在 MVC 管道本身之外检索路由数据。

为了实现所需的行为,您应该考虑实施 ActionFilter:https://docs.asp.net/en/latest/mvc/controllers/filters.html