我的api端点正在使用asp.net mvc(4)web api控制器。
有没有类似于mvc如何使用OnActionExecuting的事件?
另外,如果请求具有授权令牌,如何访问Request对象进行查找?
答案 0 :(得分:24)
由于发布的Niko过滤器对我不起作用(我正在使用 ApiController
类),我实现了此过滤器:
public class MyActionFilter : System.Web.Http.Filters.ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
// pre processing
}
确保您不使用“System.Web.Mvc.ActionFilterAttribute”中的ActionFilter。
答案 1 :(得分:9)
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//use filterContext.HttpContext.Request...
}
}
对于您的控制器操作,请应用属性
[MyActionFilter]
public Action MyAction(...)
{
//...
}
正如Satpal在评论中提到的那样,您实际上可能希望使用AuthorizeAttribute来授权访问您的行为。