簡體   English   中英

如何從 ActionExecutingContext 獲取路由模板

[英]how to get a template of route from ActionExecutingContext

我需要通過 http 方法和路由模板來限制對控制器方法的訪問。 如何從上下文變量中獲取路由模板?

public abstract class BaseController : Controller
    {
      public override void OnActionExecuting(ActionExecutingContext context)
      {

        string apiKey = context.HttpContext.Request.Headers["key"];
        string httpMethod = context.HttpContext.Request.Method.ToUpper();
        string routeTemplate = context. ???

        if (CheckAccess(apiKey, httpMethod , routeTemplate))
        {
           context.Result = Forbid();
        }
      }
    }

我已經解決了這個問題。

public abstract class BaseController : Controller
{
  public override void OnActionExecuting(ActionExecutingContext context)
  {

    string apiKey = context.HttpContext.Request.Headers["key"];
    string httpMethod = context.HttpContext.Request.Method.ToUpper();
    string routeTemplate =context.ActionDescriptor.AttributeRouteInfo.Template;

    if (CheckAccess(apiKey, httpMethod , routeTemplate))
    {
       context.Result = Forbid();
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM