如何在Web Api控制器中触发OnActionExecuting?

我的api端点使用的是asp.net mvc(4)web api控制器。

有没有类似于mvc OnActionExecuting的事件?

另外,如果请求具有授权令牌,如何访问Request对象以进行查找?

由于Niko发布的filter对我不起作用(我正在使用ApiController类),我实现了这个filter:

 public class MyActionFilter : System.Web.Http.Filters.ActionFilterAttribute { public override void OnActionExecuting(HttpActionContext actionContext) { // pre processing } 

确保不使用“System.Web.Mvc.ActionFilterAttribute”中的ActionFilter。

使用动作filter 。

 public class MyActionFilter : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { //use filterContext.HttpContext.Request... } } 

对于控制器操作,请应用该属性

 [MyActionFilter] public Action MyAction(...) { //... } 

正如Satpal在他的评论中提到的,您可能实际上想要使用AuthorizeAttribute来授权访问您的操作。