我的 api 端点正在使用 asp.net mvc (4) web api 控制器。
是否有任何类似于 mvc 具有 OnActionExecuting 的事件?
另外,如果请求具有授权令牌,我如何访问 Request 对象进行查找?
我的 api 端点正在使用 asp.net mvc (4) web api 控制器。
是否有任何类似于 mvc 具有 OnActionExecuting 的事件?
另外,如果请求具有授权令牌,我如何访问 Request 对象进行查找?
由于 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来授权访问您的操作。