Compartilhar via


Autenticação de Formulários no ASP.NET Web API

por Mike Wasson

A autenticação de formulários usa um formulário HTML para enviar as credenciais do usuário para o servidor. Não é um padrão da Internet. A autenticação de formulários só é apropriada para APIs Web chamadas de um aplicativo Web, para que o usuário possa interagir com o formulário HTML.

Vantagens Desvantagens
  • Fácil de implementar: integrado a ASP.NET.
  • Usa ASP.NET provedor de associação, o que facilita o gerenciamento de contas de usuário.
  • Não é um mecanismo de autenticação HTTP padrão; usa cookies HTTP em vez do cabeçalho de autorização padrão; alguns usuários desabilitam cookies.
  • Difícil de usar de clientes nonbrowser. O logon requer um navegador.
  • As credenciais do usuário são enviadas como texto não criptografado na solicitação.
  • Vulnerável à CSRF (solicitação intersite forjada); requer medidas anti-CSRF.

Resumidamente, a autenticação de formulários no ASP.NET funciona da seguinte maneira:

  1. O cliente solicita um recurso que requer autenticação.
  2. Se o usuário não estiver autenticado, o servidor retornará HTTP 302 (Encontrado) e redirecionará para uma página de logon.
  3. O usuário insere credenciais e envia o formulário.
  4. O servidor retorna outro HTTP 302 que redireciona de volta para o URI original. Essa resposta inclui um cookie de autenticação.
  5. O cliente solicita o recurso novamente. A solicitação inclui o cookie de autenticação, portanto, o servidor concede a solicitação.

Ilustração de como funciona a autenticação de formulários no A SP dot Net

Para obter mais informações, consulte Uma visão geral da autenticação de formulários.

Usando a Autenticação de Formulários com a API Web

Para criar um aplicativo que usa a autenticação de formulários, selecione o modelo "Aplicativo da Internet" no assistente de projeto do MVC 4. Este modelo cria controladores MVC para gerenciamento de conta. Você também pode usar o modelo "Aplicativo de Página Única", disponível no ASP.NET Fall 2012 Update.

Em seus controladores de API Web, você pode restringir o acesso usando o [Authorize] atributo , conforme descrito em Usando o atributo [Authorize].

A autenticação de formulários usa um cookie de sessão para autenticar solicitações. Os navegadores enviam automaticamente todos os cookies relevantes para o site de destino. Esse recurso torna a autenticação de formulários potencialmente vulnerável a ataques CSRF (solicitação intersite forjada) Consulte Prevenção de ataques CSRF (solicitação intersite forjada).

A autenticação de formulários não criptografa as credenciais do usuário. Portanto, a autenticação de formulários não é segura, a menos que seja usada com SSL. Consulte Trabalhando com SSL na API Web.