Noções básicas sobre o tíquete de autenticação de formulários e o Cookie

Traduções deste artigo Traduções deste artigo
ID do artigo: 910443 - Exibir os produtos aos quais esse artigo se aplica.
Coluna de voz de suporte do ASP.NET

Noções básicas sobre o tíquete de autenticação de formulários e o Cookie

Para personalizar esta coluna às suas necessidades, gostaríamos de convidá-lo para enviar suas idéias sobre tópicos que interessam a você e problemas que você deseja ver abordados no futuro artigos do Knowledge Base e colunas de voz de suporte. Você pode enviar suas idéias e comentários usando o Peça para ele formulário. Há também um link para o formulário na parte inferior desta coluna.
Expandir tudo | Recolher tudo

Neste artigo

Introdução

Bem-vindo à coluna voz de suporte do Microsoft ASP.NET! Estou Nilay B. Shah com a equipe de suporte de desenvolvedores do ASP.NET. Venho trabalhando com ASP.NET suporte para mais de um e meio anos. Autenticação de formulários é um recurso de autenticação interessante. Este artigo aborda alguns problemas que os usuários descobriram confusos com autenticação de formulários, como a relação entre o tíquete de autenticação de formulários e o cookie de autenticação de formulários e suas configurações relevantes. Eu gostaria de agradecer a Jerry Orman, líder técnico da equipe de suporte do ASP.NET, por me ajudar a incrível!

As pessoas às vezes se questionam sobre permissões"autenticação de formulários" e "cookies" porque elas estão intimamente relacionadas. Eu já se deparou com perguntas como essas: qualquer pessoa pode explicar a diferença entre a expiração do cookie e a expiração da permissão? Quando o cookie expirar, o usuário será redirecionado para a página de logon. O que acontece quando a concessão expira? Ele também fará com que o cookie expirar? O que SlidingUpdate realmente atualizar?

Falarei sobre esses dois aspectos da autenticação de formulários neste artigo para responder às seguintes perguntas:
  • O que é cookie formsauthentication e de tíquete de autenticação de formulários? Como eles estão relacionados?
  • Qual é a função de um tíquete em FormsAuthentication?
  • Como são expiração do cookie e expirationrelated de permissão?
  • Como trabalho de expiração sliding no contexto do tíquete formsauthentication e cookies de autenticação de formulários?
  • Onde pode definir a propriedade de tempo limite do tíquete de autenticação de formulários e formulários authenticationcookie?
  • Cenário de problema: A autenticação de formulários pode sempre outbefore o valor do atributo de tempo limite é definido na configurationfile

O que é o tíquete de autenticação de formulários e o cookie de autenticação forms? Como arethey relacionados?

Cookie de autenticação Forms é apenas o recipiente para o tíquete de autenticação de formulários. A permissão é passada como o valor do cookie de autenticação de formulários com cada solicitação e é usada pela autenticação de formulários, no servidor, para identificar um usuário autenticado.

No entanto, se optarmos por usar autenticação de formulários cookieless, a permissão será passada na URL no formato criptografado. Autenticação de formulários sem cookie é usada porque, às vezes, os navegadores cliente bloqueiam cookies. Este recurso é introduzido no Microsoft.NET Framework 2.0.

Para obter mais informações, visite o seguinte site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/System.Web.Configuration.FormsAuthenticationConfiguration.Cookieless.aspx

Qual é a função de um tíquete informa a autenticação?

O tíquete de autenticação de formulários é usado para instruir o aplicativo ASP.NET que você está. Assim, o tíquete é o bloco de construção de segurança da autenticação de formulários.

A permissão é criptografada e assinada com o <machineKey></machineKey> elemento de configuração do arquivo de Machine. config do servidor. O ASP.NET 2.0 usa o decryptionKey e o novo atributo de descriptografia do <machineKey></machineKey> elemento para criptografar tíquetes de autenticação de formulários. O atributo de descriptografia permite que você especifique o algoritmo de criptografia a ser usado. O ASP.NET 1.1 e 1.0 usar a criptografia 3DES, que não é configurável. Violação com o valor de tíquete é determinado por uma falha de descriptografar o tíquete do servidor. Como resultado, o usuário será redirecionado para a página de logon.

Se o aplicativo for implantado em um Web farm, você deve verificar se os arquivos de configuração em cada servidor compartilham o mesmo valor para os atributos validationKey e decryptionKey o <machineKey></machineKey> marca, que são usados para hash e decodificação do tíquete de respectivamente. Você deve fazer isso porque você não pode garantir que servidor irá tratar solicitações sucessivas. Para obter mais informações sobre criptografia FormsAuthenticationTicket e considerações de implantação de farm da Web, visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/ms998288.aspx
Um passeio por meio dos métodos para gerar chaves manualmente pode ser encontrado nos seguintes artigos da Base de Conhecimento Microsoft:
312906 Como criar chaves usando o Visual C# .NET para uso em autenticação de formulários
313091 Como criar chaves usando o Visual Basic .NET para uso em autenticação de formulários
Tíquetes de autenticação de formulários podem ser gerados manualmente, usando a classe FormsAuthenticationTicket . Para obter mais informações, visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/System.Web.Security.FormsAuthenticationTicket.aspx

Como são relacionados a expiração do cookie e a expiração da permissão?

No caso de cookie não-persistente, se a permissão for expirada, cookie também irá expirar e o usuário será redirecionado para a página de logon. No outro lado, se a permissão estiver marcada como persistente, onde o cookie é armazenado na caixa cliente, navegadores podem usar o mesmo cookie de autenticação para fazer logon no site da Web qualquer tempo. No entanto, podemos usar o método FormsAuthentication.SignOut para excluir persistente ou cookies não-persistentes explicitamente.

Para obter mais informações sobre o método FormsAuthentication.SignOut , visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/System.Web.Security.FormsAuthentication.SignOut.aspx
Com autenticação de formulários sem cookies, se o navegador for fechado, o tíquete é perdido e será gerado um novo tíquete na próxima solicitação.

Como trabalho de expiração sliding no tíquete de autenticação de offorms contexto e o cookie de autenticação de formulários?

A expiração deslizante funciona exatamente da mesma maneira!

Vamos pegar um exemplo: se a página de logon é acessada às 5:00 00:00:00 PM, ele deve expirar às 5:10:00: 00:00 PM se o atributo timeout é 10 e o atributo slidingExpiration é definido como TRUE. Agora, se qualquer página da Web é apresentada novamente em 5:05 00:00:00 PM, os cookies e o período de tempo limite do tíquete serão redefinidos como 5:15:00: 00:00 PM.

Observação Se a página da Web for acessada antes de metade do tempo de expiração passar, o tempo de expiração de ticket não será redefinido. Exemplo de primeiro plano, se qualquer página da Web for acessada novamente às 5:04 00:00:00 PM, os cookies e o período de tempo limite do tíquete não serão redefinidos.

Para obter mais informações, visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/1d3t3c61 (vs.71).aspx

Onde o valor de tempo limite do tíquete de autenticação de formulários autenticação cookieand formulários pode ser configurado?

A única configuração que você pode fazer é no arquivo Web. config ou o arquivo Machine. config, no <forms></forms> marca. Esta alteração determinará o período de tempo limite de autenticação de formulários no contexto de um tíquete ou cookie a menos que a permissão é gerada manualmente.

<!--
forms Attributes: 
name="[cookie name]" - Sets the name of the cookie used for Forms Authentication.
loginUrl="[url]" - Sets the URL to redirect client to for authentication.
protection="[All|None|Encryption|Validation]" - Sets the protection mode for data in cookie.
timeout="[minutes]" - Sets the duration of time for cookie to be valid (reset on each request).
path="/" - Sets the path for the cookie.
requireSSL="[true|false]" - Should the forms authentication cookie be sent only over SSL?
slidingExpiration="[true|false]" - Should the forms authentication cookie and ticket be reissued if they are about to expire?
-->
Para obter mais informações, visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspx
Se a permissão for gerada manualmente, usando a classe FormsAuthenticationTicket , o tempo limite pode ser definido por meio do atributo de expiração . Esse valor substituirá o valor de atributo de tempo limite especificado nos arquivos de configuração.

Para obter mais informações sobre membros FormsAuthenticationTicket , visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/System.Web.Security.formsauthenticationticket_members.aspx

Cenário de problema: A autenticação de formulários pode expirar antes do valor de atributo de tempo limite é definido no arquivo de configuração

Se o tíquete de autenticação de formulários é gerado manualmente, a propriedade de tempo limite do tíquete de substituirá o valor definido no arquivo de configuração. Portanto, se esse valor for menor que o valor no arquivo de configuração, os formulários de tíquete de autenticação irá expirar antes que o arquivo de configuração tempo limite de atributo, valor e vice-versa. Por exemplo, vamos supor que o <forms> </forms>atributo de tempo limite é definido como 30 no arquivo Web. config e o valor de expiração do tíquete de é definido para 20 minutos. Nesse caso, o tíquete de autenticação de formulários irá expirar após 20 minutos e o usuário precisará fazer logon novamente depois disso.

Links relacionados

910439 Solucionar problemas de autenticação de formulários
891032 Solução de problemas do ASP.NET
301240 Como implementar autenticação com base em formulários no seu aplicativo ASP.NET usando o C# .NET
308157 Como implementar autenticação com base em formulários no seu aplicativo ASP.NET usando o Visual Basic .NET
Espero que você encontrou essas informações úteis para facilitar alguns confusão envolvido com o cookie e o tíquete de autenticação de formulários ASP.NET. Lembre-se de que as colunas de voz de suporte são para você! Como sempre, fique à vontade para enviar idéias sobre tópicos desejado no futuro abordada colunas ou no Microsoft Knowledge Base usando o Peça para ele formulário.

Propriedades

ID do artigo: 910443 - Última revisão: sábado, 21 de setembro de 2013 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 2.0
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Palavras-chave: 
kbhowto kbasp kbmt KB910443 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 910443

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