DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 910443 - Última revisão: sábado, 21 de setembro de 2013 - Revisão: 2.0

 
Coluna de voz de suporte do ASP.NET

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 (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) formulário. Há também um link para o formulário na parte inferior desta coluna.

Nesta página

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 (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 (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  (http://support.microsoft.com/kb/312906/ ) Como criar chaves usando o Visual C# .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 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 (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 (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 (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 (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  (http://support.microsoft.com/kb/910439/ ) Solucionar problemas de autenticação de formulários
891032  (http://support.microsoft.com/kb/891032/ ) Solução de problemas do ASP.NET
301240  (http://support.microsoft.com/kb/301240/ ) Como implementar autenticação com base em formulários no seu aplicativo ASP.NET usando o C# .NET
308157  (http://support.microsoft.com/kb/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 (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) formulário.

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áticaTraduçã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  (http://support.microsoft.com/kb/910443/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store