MVC FrameWork
MVCFramework
MVC Core 过滤器 分 同步、异步
1、 授权筛选器 IAuthorizationFilter,IAsyncAuthorizationFilter
管道中运行的第一类筛选器,用来确定发出请求的用户是否有权限发出当前请求
2、资源筛选器 IResourceFilter , IAsyncResourceFilter
当授权之后,在管道的其余部分之前以及管道组件之后运行。 对于缓存很有用
3、 操作筛选器
在控制器方法操作之前和之后运行
4、异常筛选器 IExceptionFilter、IAsyncExceptionFilter
如果注册,则在发生未处理异常时触发
5、结果筛选器 IResultFilter IAsyncResultFilter
在操作方法结果执行之前和之后运行
过滤器Filter,有两种注册方式 ①全局注册,②区域注册【 Attribute注册,只套用在特定的 Action】。
》》》全面注册 net core6 之前
public class Startup
{public void ConfigureServices(IServiceCollection services){services.AddMvc(config =>{config.Filters.Add(new ResultFilter());config.Filters.Add(new ExceptionFilter());config.Filters.Add(new ResourceFilter());});}
}
添加链接描述
》》》全面注册 net core6 之后
筛选器顺序
区域注册
ASP.NET Core 在 Attribute 注册 Filter 的方式跟 ASP.NET MVC 有一点不一样,要透过[TypeFilter(type)]。
在 Controller 或 Action 上面加上 [TypeFilter(type)] 就可以区域注册 Filter。如下:
TypeFilter》》不需要在Service中注册。
筛选器的默认顺序
取消和设置短路
通过设置提供给筛选器方法的 context 参数上的 Result 属性,可以在筛选器管道的任意位置设置短路。 例如,以下资源筛选器将阻止执行管道的其余阶段。