E como fazemos para utilizar o filtro global na aplicação, sem termos problemas com a página de Login? Isso não ficou explicado no vídeo...
E como fazemos para utilizar o filtro global na aplicação, sem termos problemas com a página de Login? Isso não ficou explicado no vídeo...
Olá, Lucas!
Você pode criar um atributo especial para ignorar o atributo global:
public class IgnoraAutorizacaoFilterAttribute : Attribute
{
}
Já no atributo global, você teria que fazer uma modificação para verificar se a action deve ou não ignorar o atributo global:
public class AutorizacaoFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.ActionDescriptor.GetCustomAttributes(typeof(IgnoraAutorizacaoFilterAttribute), false).Any())
{
return; // se é para ignorar o atributo global, retorna sem fazer nada
}
// aqui vai o código que executa a action global
}
}
Para ignorar a action global, adicione a anotação com esse atributo:
[IgnoraAutorizacaoFilter]
public ActionResult Index()
{
return View();
}
Boa sorte e bons estudos!
Olá,
Muito obrigado pela resposta. Agora consigo acessar a página de Login, mas quando autentico, a aplicação fica voltando em loop para a página de Login, aparentemente nem chamando a action de autenticação. Como posso prosseguir daqui?
Obrigado,
Lucas
Olá Marcelo,
Consegui fazer a autorização. Para isso precisei marcar o método da action Autentica também com o atributo para ignora o filtro. Além disso, não adiantou marca a classe toda do LoginController com este atributo, pois ela se comporta como se não houvesse o atributo. Sabe me explicar o porquê?
Obrigado,
Lucas