自定义操作筛选器中的Web API访问路径模板

时间:2016-05-10 07:49:00

标签: asp.net-web-api

我想在我的Web Api项目中访问自定义操作过滤器内的RouteTemplate。

我已在任何操作之前注册了要执行的自定义操作过滤器,如下所示。

public class AuthorizationFilter : ActionFilterAttribute
{
      public override void OnActionExecuting(HttpActionContext filterContext)
      {

      }
}

如果您可以在下图中看到我可以从Quick Watch内部过滤器访问路径模板。但是如果我编写相同的代码,则会抛出错误'System.Web.Http.WebHost.Routing.HttpWebRoute' is inaccessible due to its protection level

是否有其他方式可以访问路线模板

使用的属性:(((System.Web.Http.WebHost.Routing.HttpWebRoute)(HttpContext.Current.Request.RequestContext.RouteData.Route)).HttpRoute).RouteTemplate

enter image description here

1 个答案:

答案 0 :(得分:1)

这就是它的工作原理。

public override void OnActionExecuting(HttpActionContext filterContext)
{
       if (Settings.GetKeyValue<string>("EnableAuthorization") == "Enabled")
       {
            var routeTemplate = filterContext.Request.GetRouteData().Route.RouteTemplate;
       }
}