Asp.net web api 如何使用WebApi ActionFilter属性

Asp.net web api 如何使用WebApi ActionFilter属性,asp.net-web-api,Asp.net Web Api,这里我写了一个简单的Actioon过滤器 public class ActionFilter:ActionFilterAttribute { public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { Trace.WriteLine(string.Format("Action Method {0} executin

这里我写了一个简单的Actioon过滤器

 public class ActionFilter:ActionFilterAttribute
    {
        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            Trace.WriteLine(string.Format("Action Method {0} executing at {1}",actionExecutedContext.ActionContext.ActionDescriptor, DateTime.Now.ToShortDateString()), "Web API Logs");
        }
        public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            Trace.WriteLine(string.Format("Action Method {0} executed at {1}",actionContext.ActionDescriptor.ActionName,  DateTime.Now.ToShortDateString()));
        }
在WebApi中

[ActionFilter]
        public IHttpActionResult GetData()
        {
        }

这里它在前后工作,但我不理解为什么这个过滤器出现在图片中

动作过滤器基本上用于在动作执行前后执行一些逻辑

让我们考虑两个场景:

  • 如果需要检查用户是否可以访问特定的操作,只需在代码的OnActionExecuting()函数中编写代码验证即可
  • 同样,如果您想在执行某个操作后修改“希望执行任何活动”的响应,您可以使用OnActionExecuted函数过滤器进行过滤
  • 有关筛选器的更多信息,请查看以下链接:

    签出或签出,它们被设计为在操作执行之前和之后执行。例如,在授权的情况下,如果请求未经授权,则可以在Before处理程序中使其无效。