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 |
---|---|
|
|
Resumidamente, a autenticação de formulários no ASP.NET funciona da seguinte maneira:
- O cliente solicita um recurso que requer autenticação.
- Se o usuário não estiver autenticado, o servidor retornará HTTP 302 (Encontrado) e redirecionará para uma página de logon.
- O usuário insere credenciais e envia o formulário.
- O servidor retorna outro HTTP 302 que redireciona de volta para o URI original. Essa resposta inclui um cookie de autenticação.
- O cliente solicita o recurso novamente. A solicitação inclui o cookie de autenticação, portanto, o servidor concede a solicitação.
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.