我在一个动作上有两个自定义ActionFilters。
在第一个actionfilters中,如果不满足条件,我会执行重定向(经典授权)。而在另一个我有一个重定向,如果不满足另一个条件(比如角色检查)。
但如果没有遇到第一个actionFilter,我不想继续第二个actionFilter。怎么做?
答案 0 :(得分:22)
将filterContext.Result
属性设置为任何非空值将停止执行后续过滤器。因此,如果您的第一个过滤器设置filterContext.Result = new RedirectResult(...)
,则永远不会运行第二个过滤器和操作方法。这就是内置[Authorization]
过滤器的工作原理。