net 6 AOP--Filter
1. AuthorizeAttribute
2 IResourceFilter
3 IActionFilter
4 IResultFilter
5 IAlwaysRun
6 IExceptionFilter
IAsycExceptinFilter
AllowAnonymousAttribute 部分可以使用
NET .Filter生命周期
1 现在ASP.NET Core中的几个Filter来支持的AOP已经讲解完成
2 那么这个几个Filter的生命周期是怎样的呢?
3 分别把6个Filter全部注册到某一个方法,来看看执行顺序
a.验证权限,进入到Authorization
b.ResourceFilter 中的--OnResourceExecuting
c.开始创建控制器实例
d.ActionFilter 中的-- OnActionExecuting
e.执行Action方法
f.ActionFilter 中的-- OnActionExecuted
g.ResultFilter 中的-- OnResultExecuting
h.AlwaysRunResultFilter 中的 -- OnResultExecuting
i.渲染视图
j.AlwaysRunResultFilter 中的 -- OnResultExecuted
k.ResultFilter 中的-- OnResultExecuted
l.ResourceFilter中的--OnResourceExecuted
AOP:在不修改之前的代码为基础上,动态增加功能,但是我们现在做的无论是
ResourceFilter还是ActionFilter都是直接标记在方法上的,那么如果要对某一些
Action、或者对于某个项目整体生效呢?
image-20211130165928663
1 方法注册:仅对当前方法生效
2 控制器(类)注册:对当前控制器下的所有Action都生效
3 全局注册:对于项目中的所有方法都生效
1.AuthorizeAttribute权限验证
IResourceFilter资源缓存-方法调用前后可以添加功能
IActionFilter方法前后扩展 IActionffilter: 执行顺序:控制器构造函数--》actionffilter onactionExecuting--->控制器的action-->actionffilter onactionExecuting 适合做日志,记录方法执行的整个时间
IAsyncActionFilter
2.IResultFilter结果生成前后扩展IResultFilter :在调用方法action后,视图渲染前 调用onResultExecuting,视图渲染后调用 onResultExected
IASyncResultFilter
应用场景:对返回结果如返回json 统一在onResultExecuting处理
3.IAlawaysRunResult 响应结果的补充:对 方法调用后视图调用做数据补充
4.IExceptionFilter 异常处理