Pesquisar

Acompanhe

http://twitter.com/dfcdaniel Feed

Posts recentes

Comentários recentes

ASP.NET MVC – Entendendo os Actions Filters

O Controller de uma aplicação ASP.NET MVC é composto de “N” Actions . Eles são métodos responsáveis pela interação entre Model e View , portanto, não é de sua responsabilidade implementar código que cuide de log de erros, autenticação, autorização, cache ou qualquer coisa do tipo.

Imagine a execução de uma Action que retorne dados confidenciais. Para garantir o bom funcionamento da aplicação é necessário saber, por exemplo, se o usuário está autenticado e se ele possui autorização para acessar os dados. Poderia também verificar se existe cache dos dados solicitados, ou até mesmo se algum erro ocorreu durante a execução de alguma Action. Caso a Action implementasse todas essas funcionalidades ela estaria ferindo o Princípio da Responsabilidade Única. Então, se não é responsabilidade da Action implementar esse tipo de código quem irá fazer isso? Resposta: os Filters!

Filters são atributos que você pode utilizar em um Controller ou Action para filtrar a execução das Actions. Quando um Filter é aplicado em um Controller o escopo será todas as Actions do Controller e quando aplicado em uma Action o escopo será a Action. Por exemplo: você pode utilizar um único Filter para tratar todas as exceções que uma Action pode lançar para isso você precisa apenas decorar o Controller com o Filter HandleError(vamos discutir mais sobre esse Filter em outro post), caso você queira dar um tratamento mais personalizado para cada Action você deve decorar cada uma com o Filter HandleError configurado apropriadamente. Você pode ainda ter as duas opções, ou seja, um Filter no Controller e o mesmo tipo de Filter em uma Action específica, desde que o Filter tenha configurações diferentes.

Dentro do framework ASP.NET MVC você vai encontrar três Filters: AuthorizeAttribute, OutputCacheAttribute e HandleErrorAttribute que vamos discutir no próximo post.

Daniel Fonseca Castro

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: ASP.NET MVC
Postado por Daniel Fonseca Castro - Tuesday, November 24, 2009 8:15 AM
Permalink | Comments (0) | Post RSSRSS comment feed

Related posts

Add comment


 

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]