Olá Freedy,
como você comentou, o problema de deixar o AutorizacaoFilterAttribute
como um filtro global é que ele é aplicado para todos os controllers. No caso do Login, precisamos que ele ignore este filtro na hora que for chamado.
Para fazer esta exceção no LoginController, no Asp.net MVC 5 eles criaram uma interface IOverrideFilter
, em que você define uma propriedade FiltersToOverride
que recebe qual filtro precisa ser ignorado.
Aqui tem o link com a estrutura. A ideia é você criar uma classe que implementa esta interface IOverrideFilter
e na sobrescrita da propriedade FiltersToOverride
você passe como typeof
o seu AutorizacaoFilterAttribute
. Ai basta anotar o seu LoginController com esta classe que implementa o IOverrideFilter
para que o filtro de autorização seja ignorado para este controller.