2017-01-19 6 views
2

httpメソッドとルートテンプレートでコントローラのメソッドへのアクセスを制限する必要があります。ルートのテンプレートを取得する方法コンテキスト var?ActionExecutingContextからルートのテンプレートを取得する方法

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(); 
     } 
     } 
    } 

答えて

1

私はこの問題を解決します。

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(); 
    } 
    } 
} 
関連する問題