如何在 Web API 控制器中触发 OnActionExecution
本文关键字:OnActionExecution 控制器 API Web | 更新日期: 2023-09-27 18:32:13
我的 api 端点正在使用 asp.net mvc (4) Web API 控制器。
是否有任何类似于 mvc 具有 OnActionExeting 的事件?
另外,如果请求具有授权令牌,如何访问要查找的请求对象?
由于 Niko 发布的过滤器对我不起作用(我使用的是 ApiController
类),我实现了这个过滤器:
public class MyActionFilter : System.Web.Http.Filters.ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
// pre processing
}
}
确保不使用"System.Web.Mvc.ActionFilterAttribute"中的 ActionFilter。
使用操作筛选器。
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//use filterContext.HttpContext.Request...
}
}
对于控制器操作,请应用属性
[MyActionFilter]
public Action MyAction(...)
{
//...
}
正如Satpal在他的评论中提到的,您可能实际上希望使用AuthorizeAttribute来授权访问您的操作。