1
resposta

Looping e acesso negado

Depois que aplicamos o filtro de restrição a usuário, nem mesmo na tela de login conseguimos acessar. Acredito que há a necessidade de se aplicar uma exceção no controller do Login. Verifiquei que existe um tópico aberto com o mesmo problema, mas não consegui aplicar uma solução. Poderia apresentar a solução para esse problema?

Obrigado.

1 resposta

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.