Antes de mais nada vamos entender o que são os filtros no dotnet: os filtros no dotnet são uma técnica que permite aplicar uma um código personalizado nas requisições HTTP antes que elas atinjam as ações do controlador. É possível aplicar esses filtros de forma global, para todos os controllers, ou aplicando só em uma função.
Há muitos tipos de filtros no .NET, cada um com uma finalidade.
Neste post, vamos ver os principais tipos de filtros e como usar cada um deles em sua aplicação.
Sem mais delongas vamos ver quais são os tipos de filtro no dotnet.
Tipos de Filtros no dotnet
Os tipos de filtros no .NET são:
- Filtros de Autenticação: permitem que você autentique um usuário antes que ele tenha acesso à sua aplicação. O filtro de autenticação mais comum é o “Authorize”, que permite que você restrinja o acesso a um determinado controlador ou função a usuários autenticados, mas vale lembrar que a forma de autenticação tem que ser configurada no startup da aplicação.
- Filtros de Ação: Esses filtros são tem sua execução antes e depois da chamada do método dentro do controller. Os filtros de ação mais comum é o “ActionFilter”.
- Filtros de Exceção: Esses filtros permitem que você faça a captura das exceções antes do disparo para o usuário. O filtro “ExceptionFilter” é o mais comum.
- Filtros de Recurso: permitem que você tenha acesso a recursos antes ou depois que uma ação do controlador tenha sua execução feita. Os filtros de recurso mais comuns são o “ResourceFilter” e o “TypeFilter”.
- Filtros de Resultado: permitem que você capture e altere o resultado da ação do controlador antes que o retorno seja feito para o usuário. O filtro “ResultFilter” é o mais comum.
Como Usar Filtros no dotnet
Para usar os filtros no dotnet é preciso adicionar o atributo “Filter”.
Por exemplo, para aplicar um filtro de autenticação a uma ação do controlador, você pode usar o atributo “Authorize”:
Como Criar um filtro no dotnet
Para criar um filtro no dotnet você precisa criar uma classe que implementa uma das interfaces de filtros (veja mais sobre na documentação da Microsoft).
Vamos ao exemplo de criar um filtro de ação, o primeiro passo é criar uma classe que implementa a interface “IActionFilter” e depois colocar o filtro na coleção de filtros no método “ConfigureServices” dentro do arquivo “Startup.cs”.
Por exemplo:
Como adicionamos o filtro na coleção global de filtros todas as ações farão a execução do filtro.
Mas se não quiser usar de forma global é só ajustar o código acima para implementar a interface ActionFilterAttribute.
E depois de criado usar o atributo nas ações que desejar.
Veja o exemplo:
E para usar o filtro é bem simples, só adicionar o atributo.
Conclusão
Os filtros no dotnet certamente são uma ferramenta muito poderosa para modificar o comportamento de uma aplicação web. Eles permitem que você aplique regras de autenticação, exceção, recurso e resultado a uma ação do controlador. Espero que este post tenha sido útil para que você entenda o que são filtros no .NET e como usá-los em sua aplicação. Lembre-se de que há muitos outros tipos de filtros disponíveis além dos que eu estão neste post, como filtros de autorização por exemplo.
Vale lembrar que é importante escolher quais são os melhores filtros para a sua aplicação e como usá-los da forma certa, pois eles podem afetar muito o desempenho e a segurança da sua aplicação.
Além disso, o uso de filtros também pode facilitar a manutenção e a evolução da sua aplicação, tornando-a mais modular e organizada.
Espero que este post tenha ajudado você a entender melhor os filtros no .NET e como usá-los em sua aplicação. Mas se você ainda tiver alguma dúvida ou sugestão, não hesite em deixar um comentário abaixo.
Por fim caso queira aprender mais sobre dotnet confira os outros posts do blog.