如何知道将从Web API授权过滤器调用哪个控制器方法

Mg.*_*Mg. 9 .net c# api authorization asp.net-mvc-4

我有一个自定义AuthorizationFilter类来处理我的API授权.现在,我需要通过向方法添加一些属性来增强它,这些属性在某些情况下是只读的.

我可以通过以下方式获得控制器actionContext.ControllerContext:

我怎么知道ControllerIsAuthorized我的自定义AuthorizeAttribute类的方法调用哪个方法?所以我可以用反射得到它的属性.

编辑:添加更多信息 -

如果我得到一个调用,就像localhost/api/myapi/?id=4 我想获得将在控制器中执行的方法的真实名称一样GetById(int id).

这样我可以检查该方法是否有我需要添加的任何自定义属性.

Hen*_*oke 25

在web api 2中,您可以使用以下命令访问操作名称:

actionContext.ActionDescriptor.ActionName
Run Code Online (Sandbox Code Playgroud)

  • 请添加更多细节以解释发生了什么. (6认同)
  • @twoleggedhorse还有什么需要解释的? (4认同)