当操作具有筛选器时,如何取消控制器筛选器



我有一个自定义授权过滤器,该过滤器位于控制器和某些操作上。操作上的参数具有控制器筛选器没有的参数。 因此,我希望控制器过滤器仅适用于没有相同参数过滤器的过滤器。 我尝试将其放在两个地方,但过滤器被调用了两次

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

在上面的代码片段中,它调用自定义授权两次,一次没有参数,第二次没有参数。

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

控制器上属性的想法是将其应用于每个操作。 因此,不可能仅运行操作的属性。 (如果你删除类的)

在这个SO答案中,很好地描述了何时使用它。

最新更新