我正在尝试检索控制器和操作,到目前为止,我已经尝试使用以下方式:
var routeData = context.GetRouteData();
在中间件的Invoke方法内部,但每次都返回null。是否可能在中间件中检索路由数据?
我尝试实现的目标是检查请求的操作是否具有[RequireToken]属性,如果有,则检查传入的头部是否有特定的令牌。请问这个可行吗?
我正在尝试检索控制器和操作,到目前为止,我已经尝试使用以下方式:
var routeData = context.GetRouteData();
动作/控制器上下文非常特定于中间件管道的MVC部分。在MVC管道本身之外,无法检索路由数据。
为了实现期望的行为,您应该考虑实现ActionFilter而不是: https://docs.asp.net/en/latest/mvc/controllers/filters.html
if (httpContext.Request.Path.ToString() == "/USA/Washington")
来查找控制器是否为 USA,操作是否为 Washington。 - yogihosting