INFO: Ajuda segurança autenticação de formulários usando Secure Sockets Layer (SSL)

Traduções deste artigo Traduções deste artigo
ID do artigo: 813829 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo se refere ao seguinte namespace Microsoft .NET Framework Class Library:
  • System.Web.Security
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Por padrão, o cookie que contém o tíquete de autenticação de formulários não está protegido quando você usa autenticação de formulários em um aplicativo Web do Microsoft ASP.NET. Este artigo descreve como ajudar a autenticação de formulários seguro usando Secure Sockets Layer (SSL). Este artigo também descreve opções de implementação adicionais e modos alternativos para ajudar a autenticação de formulários segura.

Mais Informações

Autenticação baseada em formulários é um serviço de autenticação do ASP.NET que permite aos aplicativos fornecer sua própria interface de logon e executar verificação de credencial personalizada. Com autenticação de formulários ASP.NET autentica os usuários e redireciona os usuários não autenticados para a página de logon que é especificada pelo atributo loginUrl do <forms> elemento no arquivo Web.config. Quando você fornecer credenciais por meio do formulário de logon, o aplicativo autenticar a solicitação e, em seguida, o sistema emitirá uma classe FormsAuthenticationTicket na forma de um cookie. A classe FormsAuthenticationTicket é passada como um cookie em resposta a subseqüentes Web solicitações do cliente autenticado.

Embora a autenticação de formulários ofereça uma maneira flexível de autenticação, você deve considerar cuidadosamente algumas questões importantes quando você proteger um aplicativo ASP.NET. Você deve ajudar a proteger as credenciais de logon inicial usando SSL porque as credenciais são enviadas para o servidor como texto sem formatação. Você também deve certificar-se que você ajudar a proteger o cookie que contém o tíquete de autenticação de formulários. Para fazer isso, use o SSL em todas as páginas para ajudar a proteger o tíquete. Como alternativa, você pode criptografar o tíquete de autenticação de formulários definindo o atributo protection do <forms> classe de elemento para todos ou para criptografar no arquivo Web.config e use o método Encrypt de FormsAuthentication para criptografar o tíquete. Para obter mais informações sobre o método Encrypt da classe FormsAuthentication , consulte o "" seção deste artigo.

Vantagens de autenticação de formulários

  • Oferece suporte à autenticação formulários contra um dados personalizados armazenamento, como um banco de dados do Microsoft SQL Server ou o Active Directory serviços de diretório. Para obter mais informações, consulte a seção "REFERENCES" deste artigo.
  • Autenticação de formulários oferece suporte a autorização baseada em função com função de pesquisa de um armazenamento de dados.
  • Autenticação de formulários sem problemas é integrada com a Web interface do usuário. Para obter mais informações, consulte a seção "REFERENCES" deste artigo.
  • O ASP.NET fornece muita a infra-estrutura. Relativamente pouco código é necessário em comparação com as versões 3.0 e anteriores do Microsoft Active Server Pages
  • Autenticação de formulários ASP.NET não requer o Microsoft Internet Explorer. Autenticação de formulários oferece suporte a clientes de navegador um intervalo grande da Web.

Como criar Ajuda Forms Authentication seguro

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

Usar SSL para todas as páginas

Ajude a assegurar para que o cookie de autenticação permaneça seguro em toda uma sessão de navegador do cliente usando criptografia SSL para ajudar a acesso seguro seguro para todas as páginas. Usando criptografia SSL no aplicativo, você ajuda a evitar que alguém de comprometer o cookie de autenticação e de transmissão de outras informações importantes.

Defina o valor da propriedade requireSSL como true no arquivo Web.config. Isso coloca o SSL no lugar quando o cookie é enviado de volta para o navegador. Se você não definir o valor de requireSSL como true , o formulário lança uma exceção ou não autentica com o cookie.

Quando requireSSL é definida como true , a conexão criptografada ajuda a proteger as credenciais do usuário e ASP.NET define a propriedade HttpCookie.Secure para o cookie de autenticação. O navegador compatível não retorna o cookie a menos que a conexão use SSL. O exemplo a seguir mostra como fazer isso no arquivo Web.config para seu aplicativo:
 <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 exemplo a seguir toma a ação se o cookie for definido como transmitir com segurança:

código do .NET translation from VPE for Csharp Visual
 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

Use o método da classe FormsAuthentication criptografar

Se você usar apenas SSL na página da Web logon inicial para criptografar as credenciais que são passadas para autenticação, verifique se que o tíquete de autenticação de formulários está contido em um cookie é protegido. Os tíquetes de autenticação de formulários devem ser protegidos porque o cookie é passado entre o cliente e o servidor em cada solicitação da Web subseqüente. Para criptografar o tíquete de autenticação de formulários, configure o atributo protection do <forms> elemento e use o método Encrypt de FormsAuthentication classe para criptografar o tíquete.
<authentication mode="Forms">
  <forms name="MyAppFormsAuth"
       loginUrl="login.aspx"
       protection="All"
       timeout="20" 
       path="/" >
  </forms>
</authentication> 
porque o atributo protection está definido como All , quando o aplicativo chama o método FormsAuthentication.Encrypt , a permissão devem ser validada e ser criptografada.

Chame o método Encrypt quando você criar formulários de tíquete de autenticação. Você normalmente cria a permissão no manipulador de eventos de logon do aplicativo.

código do .NET translation from VPE for Csharp Visual
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
código do Visual Basic .NET
Dim encryptedTicket As String = FormsAuthentication.Encrypt(authTicket)

Referências

Para informações sobre ASP.NET e autenticação de formulários, visite os seguintes sites:
Autenticação no ASP.NET: .NET Security Guidance
http://msdn2.microsoft.com/en-us/library/ms978378.aspx
Provedor de autenticação de formulários
http://msdn2.microsoft.com/en-us/library/9wff0kyh(vs.71).aspx
Para obter informações adicionais sobre como usar SSL para proteger a autenticação de formulários, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
306590INFO: Visão geral sobre segurança do ASP.NET
315588COMO: Proteger um aplicativo ASP.NET usando certificados do lado do cliente
313116PROBLEMA: Forms Authentication Requests Are não Directed para loginUrl Page
324069COMO: Configurar um serviço HTTPS no IIS
326340AD - como: autenticar contra o Active Directory usando autenticação de formulários e o Visual Basic .NET
301240SQL - como: implementar autenticação baseada em formulários no seu aplicativo ASP.NET usando translation from VPE for Csharp .NET
308157SQL - como: implementar autenticação com base em formulários no seu aplicativo ASP.NET usando o Visual Basic .NET
311495COMO: Implementar baseada em função a segurança com autenticação baseada em formulários no ASP.NET aplicativo usando o Visual translation from VPE for Csharp .NET
306238COMO: Implementar baseada em função a segurança com autenticação baseada em formulários no seu aplicativo ASP.NET usando o Visual Basic .NET
312906COMO: Criar chaves usando o Visual translation from VPE for Csharp .NET para uso em autenticação de formulários
313091COMO: Criar chaves usando Visual Basic .NET para uso em formulários autenticação

Propriedades

ID do artigo: 813829 - Última revisão: quinta-feira, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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