BT

A sua opinião é importante! Por favor preencha a pesquisa do InfoQ!

ASP.NET MVC 5: Melhorias de autenticação com filtros

| por Anand Narayanaswamy  Seguidores , traduzido por Marvin Ferreira Seguir 0 Seguidores em 02 dez 2013. Tempo estimado de leitura: 1 minuto |

Para melhorar a experiência das pessoas que acessam o InfoQ Brasil, nós criamos uma série de funcionalidades que te permitem ficar pode dentro das últimas tendências e das novidades de seu interesse, sem que você seja incomodado por coisas irrelevantes. Receba e-mails periódicos e notificações sobre seus tópicos favoritos!

O ASP.NET MVC 5 incluído no recente lançamento do Visual Studio 2013 Developer Preview, permite que os desenvolvedores apliquem filtros de autenticação capazes de autenticar usuários utilizando diversos controles de terceiros ou um controle de autenticação customizado. Entretanto, estes filtros são aplicados antes das chamadas feitas aos filtros de autorização.

Para gerar um filtro de autenticação, é preciso criar um novo projeto C# ASP.NET, selecionando o tipo MVC na lista de projetos apresentados. Eric Vogel, Desenvolvedor de Software Sênior da Kunz, Leigh & Associates, investigou o uso dos filtros de autenticação através de um filtro personalizado, que faz o redirecionamento dos usuários de volta à página de login caso estes não sejam autenticados.

Vogel criou um diretório chamado CustomAttributes e uma nova classe chamada BasicAuthAttribute, que herda de ActionFilterAttribute e IAuthenticationFilter

public class BasicAuthAttribute: ActionFilterAttribute, IAuthenticationFilter

Embora o método OnAuthentication() presente na interface IAuthenticationFilter possa ser usado para executar qualquer autenticação necessária, o método OnAuthenticationChallenge() é usado para restringir o acesso baseado no papel do usuário autenticado.

O método OnAuthenticationChallenge() recebe um argumento AuthenticationChallengeContext, e sua implementação se parece com a demonstrada logo a seguir:

public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
{
  var user = filterContext.HttpContext.User;
  if (user == null || !user.Identity.IsAuthenticated)
  {
    filterContext.Result = new HttpUnauthorizedResult();
  }
}

O código completo está disponível no post de Vogel em seu blog. A classe BasicAuthAttribute pode ser facilmente testada na classe HomeController, abrindo o arquivo e adicionando a seguinte linha de código:

using VSMMvc5AuthFilterDemo.CustomAttributes;

Por fim, aplica-se o atributo customizado à classe HomeController, como mostrado a seguir:

[BasicAuthAttribute]
public class HomeController : Controller

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT