ID do artigo: 910443 - Última revisão: quinta-feira, 31 de maio de 2007 - Revisão: 1.4

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

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
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, queremos convidá-lo para enviar suas idéias sobre tópicos que interessam a você e problemas que você deseja ver abordados artigos do Knowledge Base no futuro e colunas de voz de suporte. Você pode enviar suas idéias e comentários usando o formulário Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) . Há também um link para o formulário na parte inferior desta coluna.

Nesta página

Expandir tudo | Recolher tudo

Introdução

Bem-vindo à coluna do Microsoft ASP.NET suporte Voice! Estou Nilay B. Shah com a equipe de suporte de desenvolvedores do ASP.NET. Tem trabalhado suporte ASP.NET para mais de um e uma metade anos. Autenticação de formulários é realmente um recurso de autenticação interessante. Este artigo aborda alguns problemas que os usuários acharam confusos com autenticação de formulários, como a relação do 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 Andrade, líder técnico da equipe de suporte do ASP.NET, para sua ajuda incrível!

As pessoas às vezes estar se perguntando sobre autenticação de formulários "permissões" e "cookies" porque eles estão intimamente relacionados. Provenientes em perguntas como essas: qualquer pessoa pode explicar a diferença entre a expiração de cookies e a expiração da permissão? Quando o cookie expira, o usuário será redirecionado para a página de logon. O que acontece quando a permissão expira? Ele também fará o cookie expira? O que SlidingUpdate realmente atualizar?

Me concentrarei nesses dois aspectos de autenticação de formulários neste artigo para responder às perguntas a seguir:
  • O que é tíquete de autenticação de formulários e o cookie de autenticação de formulários? Como eles estão relacionados?
  • O que é a função de uma permissão em formulários de autenticação?
  • Como expiração de cookies e expiração de permissão estão relacionados?
  • Como o trabalho de expiração sliding no contexto do tíquete de autenticação de formulários e cookie de autenticação de formulários?
  • Onde é possível definir a propriedade de tempo limite do cookie de autenticação de formulários de tíquete de autenticação de formulários?
  • 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

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

Cookie de autenticação de formulários é nada, mas o recipiente para tíquete de autenticação de formulários. O tíquete é passado como o valor do cookie de autenticação de formulários com cada solicitação e é usado pela autenticação de formulários, no servidor, para identificar um usuário autenticado.

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

Para obter mais informações, visite o seguinte site da Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/system.web.configuration.formsauthenticationconfiguration.cookieless.aspx (http://msdn2.microsoft.com/en-us/library/system.web.configuration.formsauthenticationconfiguration.cookieless.aspx)

O que é a função de um tíquete de autenticação de formulários?

O tíquete de autenticação de formulários é usado para informar o ASP.NET aplicativo quem você é. Portanto, o tíquete é bloco de construção dos formulários de segurança da autenticação.

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

Se o aplicativo é implantado em um Web farm, você deve se certificar que os arquivos de configuração em cada servidor compartilhem o mesmo valor para os atributos validationKey e decryptionKey o <machinekey> marca, que são usados para hash e descriptografia do tíquete de respectivamente. Você deve fazer isso porque você não pode garantir que servidor irá lidar com 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 (http://msdn2.microsoft.com/en-us/library/ms998288.aspx)
A movimentação por meio dos métodos para gerar chaves manualmente pode ser encontrada nos seguintes artigos da Base de dados de Conhecimento Microsoft:
312906  (http://support.microsoft.com/kb/312906/ ) Como criar chaves usando o Visual translation from VPE for Csharp .NET para uso em autenticação de formulários
313091  (http://support.microsoft.com/kb/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 (http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx)

Como expiração de cookies e expiração de permissão estão relacionados?

No caso de cookie não persistente, se o tíquete está expirado, cookie também irá expirar e o usuário será redirecionado para a página de logon. No outro lado, se o tíquete está marcado como persistente, onde o cookie é armazenado na caixa de cliente, navegadores poderá usar o mesmo cookie de autenticação fazer logon no site da qualquer momento. 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 (http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx)
Com autenticação de formulários cookieless, se o navegador for fechado, o tíquete é perdido e será gerado um novo tíquete na próxima solicitação.

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

Expiração deslizante funciona exatamente da mesma maneira!

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

Observação Se a página da Web for acessada antes de metade do tempo de expiração passar, a expiração da permissão não será redefinida. Primeiro plano exemplo, se qualquer página da Web for acessada novamente em 17: 04: 00: 00 00, os cookies e permissão de tempo limite não será redefinida.

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

Onde o valor de tempo limite do cookie de autenticação de formulários e do tíquete de autenticação de formulários pode ser definido?

A única configuração que você pode fazer é no arquivo Web.config ou o arquivo Machine.config, no <forms> marca. Essa alteração irá determinar o período de tempo limite de autenticação de formulários no contexto de uma permissão ou o 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 (http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspx)
Se o tíquete for gerado manualmente usando a classe FormsAuthenticationTicket , o tempo limite pode ser definido através do atributo 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 (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 do arquivo de configuração tempo limite atributo valor e vice-versa. Por exemplo, suponha que vamos o <forms> atributo de tempo limite é definido como 30 no arquivo Web.config e o valor de expiração do tíquete de é definido como 20 minutos. Nesse caso, o tíquete de autenticação de formulários expirará após 20 minutos e o usuário precisará fazer logon novamente depois que.

Links relacionados

910439  (http://support.microsoft.com/kb/910439/ ) Solucionar problemas de autenticação de formulários
Para obter o arquivo FormsAuthLogger.exe mencionada no artigo da Base de dados de Conhecimento da Microsoft 910439, visite o seguinte site:
http://www.microsoft.com/downloads/details.aspx?FamilyID=4a54e56f-61b4-48a8-9e01-4187173539da&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyID=4a54e56f-61b4-48a8-9e01-4187173539da&displaylang=en)
891032  (http://support.microsoft.com/kb/891032/ ) Solução de problemas ASP.NET
301240  (http://support.microsoft.com/kb/301240/ ) Como implementar autenticação com base em formulários em seu aplicativo ASP.NET usando o .NET translation from VPE for Csharp
308157  (http://support.microsoft.com/kb/308157/ ) Como implementar autenticação com base em formulários em seu aplicativo ASP.NET usando Visual Basic .NET
Espero que você encontrou essas informações úteis no facilitando alguns a confusão envolvida com o tíquete de autenticação de formulários ASP.NET e o cookie. Lembre-se, as colunas de voz de suporte são para você! Como sempre, vontade enviar idéias sobre tópicos que você deseja no futuro abordada colunas ou na Base de dados de Conhecimento da Microsoft usando o formulário Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) .

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: 
kbmt kbhowto kbasp KB910443 KbMtpt
Tradução automáticaTraduçã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: 910443  (http://support.microsoft.com/kb/910443/en-us/ )