К сожалению, в данный момент нет отказа от каждого отдельного элемента.По сути, у вас есть возможность присоединиться ко всему контроллеру или к отдельному действию, но это все.
Есть долгосрочная проблема , где люди хотели бы иметь возможность присоединить регистрацию одного фильтрана несколько контроллеров.Я поднимаю это, потому что это также означает, что вы не можете просто сделать это:
// Doesn't work, this isn't a thing
builder.RegisterType<Filter>()
.AsWebApiAuthenticationFilterFor<Controller>(c => c.Get())
.AsWebApiAuthenticationFilterFor<Controller>(c => c.Post());
То есть, в нынешнем виде вы не можете использовать методы, которые хотите включить, и просто выполнять эту работу..
Существует также долгосрочная проблема , позволяющая прикреплять фильтры по предикату.Если бы это было реализовано, вы могли бы сделать что-то вроде этого:
// Doesn't work, this isn't a thing
builder.RegisterType<Filter>()
.AsWebApiAuthenticationFilterFor<Controller>(method => method.Name != "Delete");
К сожалению, есть тонна работы, поэтому без помощи сообщества в форме PR или какого-либо дополнительного проектавладельцы вы, возможно, не увидите их в ближайшее время.
Лучший вариант, который я мог бы вам предложить, - разделить ваш контроллер на два разных класса - методы, которые вы хотите охватитьодин контроллер, методы вы не в другой контроллер.Извлеките их из общего базового класса, чтобы поделиться логикой.