就上图来看,大家注意了吗,ActionExecutingContext对象一共有3处引用。下面我来一一解析:
调用base.OnActionExecuting(filterContext)这个后,才会执行后续的ActionFilter,如果你确定只有一个,或是不想执行后续的话,那么可以不用调用该语句
filterContext.ActionDescriptor.ActionName通过上下文获得了执行的Action名称
filterContext.Result是执行上下文Action后返回的自定义结果。
然后我们再来看看这个ActionExecutingContext类,请看下图
这里更明确的说明了ActionExecutingContext类能帮你做什么。当然我要说说,这个类一般是用于自定义过滤器进行过滤,对于控制器来说它本身继承了ActionFilterAttribute基类,因此可以重写OnActionExecuting以下说明了该类相关方法
方法 |
参数 |
描述 |
OnActionExecuting |
ActionExecutingContext |
在行为方法执行前执行 |
OnActionExecuted |
ActionExecutedContext |
在行为方法执行后执行 |
OnResultExecuting |
ResultExecutingContext |
在行为方法返回前执行 |
OnResultExecuted |
ResultExecutedContext |
在行为方法返回后执行 |
四个方法执行顺序是OnActionExecuting——>OnActionExecuted——>OnResultExecuting——>OnResultExecuted
现在,我们再回到上图,看看这个
这段什么意思呢,CurrentModule是特性标识,特性名AuthenticateAttribute;想必大家明白权限过滤咋回事了吧
我们再看看这个,是不是限制了登录了呀,呵呵