Resolução de atributos de filtro no controlador e na ação

Eu gostaria de fazer isso:

[RequiresAuthentication(CompanyType.Client)]
public class FooController
{    
     public ActionResult OnlyClientUsersCanDoThis()

     public ActionResult OnlyClientUsersCanDoThisToo()

     [RequiresAuthentication]
     public ActionResult AnyTypeOfUserCanDoThis()

Você pode ver por que isso não vai funcionar. Na terceira ação, o filtro no nível do controlador bloqueará os não clientes. Em vez disso, gostaria de "resolver" filtros conflitantes. Eu gostaria que o filtro mais específico (filtro de ação) vencesse sempre. Isso parece natural e intuitivo.

Era uma vez filterContext exposto MethodInfo para a ação de execução. Isso tornaria isso muito fácil. Eu considerei fazer alguma reflexão usando as informações da rota. Isso não funcionará porque a ação pode estar sobrecarregada e não sei dizer qual é a atual em execução.

A alternativa é filtrar os escopos no nível do controlador ou no nível de ação, mas sem mix, o que criará muito ruído extra de atributo.

questionAnswers(3)

yourAnswerToTheQuestion