.NetCore过滤器之ActionFilter
1.过滤器介绍
Net Core中有各种Filter,分别是AuthorizationFilter、ResourceFilter、ExceptionFilter、ActionFilter、ResultFilter。可以把他们看作是.Net Core自带的AOP的扩展封装。
这里我们介绍ActionFilter过滤器,ActionFilter,它是ACtion访问的处理。
2.项目使用
新增ActionAttribute.cs.cs文件,代码如下所示:
public class ActionAttribute : ActionFilterAttribute
{
private readonly ILogger<HandleActionAttribute> _logger;
public HandleActionAttribute(ILogger<ActionAttribute> logger)
{
_logger = logger;
}
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
HttpRequest request = ((Microsoft.AspNetCore.Mvc.ControllerBase)context.Controller).Request;
AuthParam param = GetParameters(request);
CheckParameters(param);
//逻辑处理 省略
await base.OnActionExecutionAsync(context, next);
}
在对应的Controller的Action头部加上下列的 标签
[TypeFilter(typeof(ActionAttribute))]