INFO: Ajuda segura de autenticação de formulários utilizando Secure Sockets Layer (SSL)

Traduções de Artigos Traduções de Artigos
Artigo: 813829 - Ver produtos para os quais este artigo se aplica.
Este artigo faz referência à seguinte espaço de nomes Microsoft .NET Framework Class Library:
  • System.Web.Security
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Por predefinição, o cookie que contém a permissão de autenticação de formulários não está protegido quando utiliza autenticação formulários numa aplicação do Microsoft ASP.NET Web. Este artigo descreve como ajudar a autenticação por formulários segura através da utilização de Secure Sockets Layer (SSL). Este artigo também descreve opções de implementação adicionais e formas alternativas para ajudar a autenticação por formulários seguro.

Mais Informação

Autenticação baseada em formulários é um serviço de autenticação ASP.NET que permite que as aplicações para fornecer as suas próprias interface de início de sessão e para efectuar a verificação de credencial personalizada. Com a autenticação de formulários, o ASP.NET autentica os utilizadores e, em seguida, redirecciona os utilizadores não autenticados para a página de início de sessão que é especificada pelo atributo loginUrl do <forms> elemento no ficheiro Web.config. Quando fornecer credenciais através do formulário de início de sessão, a aplicação autenticar o pedido e, em seguida, o sistema emite uma classe FormsAuthenticationTicket sob a forma de um cookie. A classe FormsAuthenticationTicket é passada como um cookie numa resposta a subsequentes Web pedidos de cliente autenticado.

Apesar da autenticação por formulários fornece um meio flexível de autenticação, tem de considerar cuidadosamente algumas questões importantes ao ajudar a proteger uma aplicação do ASP.NET. Deve ajudar a proteger as credenciais de início de sessão inicial utilizando SSL porque as credenciais são enviadas para o servidor como texto simples. Também deve certificar-se que ajuda a proteger o cookie que contém a permissão de autenticação de formulários. Para efectuar este procedimento, utilize SSL em todas as páginas para ajudar a proteger a permissão. Em alternativa, pode encriptar a permissão de autenticação de formulários, definindo o atributo de protecção do <forms> classe de elemento para ou a encriptar no ficheiro Web.config e utilize o método encriptar FormsAuthentication para encriptar a permissão. Para mais informações sobre o método de encriptar da classe FormsAuthentication , consulte o "" secção deste artigo.

Vantagens da autenticação de formulários

  • Formulários de autenticação de suporte contra dados personalizados armazenar, tal como uma base de dados do Microsoft SQL Server ou do Active Directory serviços de directório. Para mais informações, consulte a secção "REFERENCES" deste artigo.
  • Autenticação por formulários suporta autorização baseada em funções através da função de pesquisa do arquivo de dados.
  • Autenticação por formulários suavemente está integrada na Web interface de utilizador. Para mais informações, consulte a secção "REFERENCES" deste artigo.
  • O ASP.NET fornece grande parte da infra-estrutura. Relativamente pouco código é necessário comparação para Microsoft Active Server Pages versões 3.0 e anteriores
  • Autenticação de formulários do ASP.NET não requer o Microsoft Internet Explorer. Autenticação por formulários suporta clientes de browser um grande intervalo de Web.

A autenticação de formulários ajuda criar segura

  • Utilize o SSL para todas as páginas.
  • Utilize o método encriptar da classe FormsAuthentication .

Utilizar o SSL para todas as páginas

Ajudar a garantir a que o cookie de autenticação permanece seguro durante uma sessão do browser cliente utilizando a encriptação SSL para ajudar o acesso seguro seguro a todas as páginas. Utilizando a encriptação SSL na aplicação, ajuda a impedir qualquer pessoa que comprometer o cookie de autenticação e de transmissão de outras informações importantes.

Defina o valor da propriedade requireSSL como true no ficheiro Web.config. Isto coloca SSL num local quando o cookie é enviado para o browser. Se não definir o valor de requireSSL como true , o formulário lança uma excepção ou não autentica com o cookie.

Quando requireSSL estiver definida como true , a ligação encriptada ajuda a proteger as credenciais do utilizador e o ASP.NET define a propriedade HttpCookie.Secure para o cookie de autenticação. O browser compatível não devolve o cookie a menos que a ligação utiliza o SSL. O exemplo seguinte mostra como o fazer no ficheiro Web.config da aplicação:
 <configuration>
 <system.web>
   <authentication mode="Forms">
     <forms name=".ASPXAUTH"
       loginUrl="login.aspx" 
       protection="All"
       timeout="20"
       requireSSL="true">
     </forms>
   </authentication > 
   <authorization>
     <deny users="?" />
   </authorization>
 </system.web>
</configuration>
o seguinte exemplo efectua uma acção se o cookie estiver definido para transmitir em segurança:

código Visual C# .NET
 string cookieName = FormsAuthentication.FormsCookieName.ToString(); 
 HttpCookie MyCookie = Context.Request.Cookies[cookieName];

 if (MyCookie.Secure)
 {
      Response.Write("The cookie is secure with SSL.");
      // Add other required code here.
 } 

código do Visual Basic .NET
   Dim cookieName As String = FormsAuthentication.FormsCookieName.ToString
   Dim MyCookie As HttpCookie = Context.Request.Cookies(cookieName)
   If MyCookie.Secure Then
      Response.Write("The cookie is secure with SSL.")
      ' Add other required code here.
   End If

Utilizar o método de classe FormsAuthentication encriptar

Se utilizar apenas SSL na página Web inicial de início de sessão para encriptar as credenciais são passadas para autenticação, certifique-se de que a permissão de autenticação de formulários contidas no cookie está protegida. Permissões de autenticação de formulários têm de ser protegidos porque o cookie é transmitido entre o cliente e o servidor em cada pedido Web subsequente. Para encriptar a permissão de autenticação de formulários, configure o atributo de protecção do <forms> classe de elemento e utilize o método encriptar FormsAuthentication para encriptar a permissão.
<authentication mode="Forms">
  <forms name="MyAppFormsAuth"
       loginUrl="login.aspx"
       protection="All"
       timeout="20" 
       path="/" >
  </forms>
</authentication> 
uma vez que o atributo de protecção está definido para todos os , quando a aplicação chama o método FormsAuthentication.Encrypt , a permissão tem de ser validada e ser encriptada.

Chame o método de encriptar quando cria formulários de permissão de autenticação. Normalmente cria a permissão no processador de eventos de início de sessão da aplicação.

código Visual C# .NET
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
código do Visual Basic .NET
Dim encryptedTicket As String = FormsAuthentication.Encrypt(authTicket)

Referências

Para obter informações sobre autenticação de ASP.NET e formulários, visite os seguintes Web sites da Microsoft:
Autenticação no ASP.NET: segurança do .NET orientações
http://msdn2.microsoft.com/en-us/library/ms978378.aspx
Fornecedor de autenticação por formulários
http://msdn2.microsoft.com/en-us/library/9wff0kyh(vs.71).aspx
Para obter informações adicionais sobre como utilizar SSL para proteger a autenticação por formulários, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
306590INFO: Descrição geral de segurança do ASP.NET
315588COMO: Secure uma aplicação do ASP.NET utilizando certificados do lado do cliente
313116Formulários de problema: Autenticação de pedidos não é dirigido para loginUrl página
324069COMO: Configurar um serviço HTTPS no IIS
326340AD - como: autenticação no Active Directory utilizando autenticação de formulários e o Visual Basic .NET
301240SQL - como: Implementar autenticação baseada em formulários na sua aplicação do ASP.NET utilizando C# .NET
308157SQL - como: Implementar autenticação baseada em formulários na sua aplicação do ASP.NET utilizando o Visual Basic .NET
311495COMO: Implementar com função de segurança com autenticação baseada em formulários no ASP.NET aplicações utilizando o Visual C# .NET
306238COMO: Implementar com função de segurança com autenticação baseada em formulários na sua aplicação do ASP.NET utilizando o Visual Basic .NET
312906COMO: Criar teclas utilizando o Visual C# .NET para utilizar na autenticação de formulários
313091COMO: Criar chaves utilizando o Visual Basic .NET para utilizar em formulários autenticação

Propriedades

Artigo: 813829 - Última revisão: 19 de abril de 2007 - Revisão: 2.5
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
Palavras-chave: 
kbmt kbcookie kbwebforms kbauthentication kbsecurity kbconfig kbinfo KB813829 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 813829

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com