当动作有过滤器时如何取消控制器过滤器?

How to cancel controller filter when action has a filter?

我在控制器和某些操作上有一个自定义授权过滤器。动作上的参数具有控制器过滤器没有的参数。因此,我希望控制器过滤器仅适用于那些没有带参数的相同过滤器的过滤器。我试着把它放在两个地方,但过滤器被调用了两次

    [CustomAuthorize]
    public class Controller
    {

        public ActionResult Index()
        {
            return View();
        }
        [CustomAuthorize(param1 ="123")]
        public ActionResult Index2()
        {
            return View();
        }

在上面的代码片段中,它调用 customauthorize 两次,一次不带参数,第二次带参数。

如果操作已经有自定义授权,我如何防止第一次自定义授权?

控制器上属性的想法是将其应用于每个操作。 所以不可能 运行 只有动作的属性。(如果你删除 class 的属性)

In this SO answer关于何时使用它的描述非常详细。