2017-01-19 4 views
2

Ich muss einen Zugriff auf Methoden des Controllers durch HTTP-Methode und Route Vorlage beschränken. Wie bekomme ich eine Vorlage der Route von Kontext var?Wie bekomme ich eine Vorlage der Route von 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(); 
     } 
     } 
    } 

Antwort

1

Ich habe dieses Problem gelöst.

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