获取从授权属性调用的api方法的名称

时间:2017-11-22 12:51:21

标签: c# asp.net-web-api

在我的自定义授权属性代码中,我想确定调用了哪个WebAPI方法。

我很欣赏我可以通过传递名称来做到这一点(参见示例2),但我宁愿不必这样做。

g

我有办法以某种方式选择这个吗?

1 个答案:

答案 0 :(得分:4)

如果从AuthorizeAttribute派生,您可以通过ActionDescriptor

访问HttpActionContext
public class CustomAuthAttribute : AuthorizeAttribute {    
    public override void OnAuthorization(HttpActionContext actionContext) {
        var actionDescriptor = actionContext.ActionDescriptor;
        var actionName = actionDescriptor.ActionName;
        var controllerName = actionDescriptor.ControllerDescriptor.ControllerName;
        //MethodName = "mycontroller/get"
        var methodName = string.Format("{0}/{1}", controllerName, actionName);
    }
}