Artigo: 910443 - Última revisão: quinta-feira, 31 de Maio de 2007 - Revisão: 1.4

Noções sobre a permissão de autenticação de formulários e cookies

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 sobre a permissão de autenticação de formulários e cookies

para personalizar esta coluna às suas necessidades, pretendemos convidá-lo para submeter as suas ideias sobre tópicos que lhe interessam e problemas que pretende ver endereçados artigos de base de dados de conhecimento no futuro e colunas de voz de suporte. Pode submeter as ideias e comentários utilizando o formulário Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) . Também há uma hiperligação para o formulário na parte inferior desta coluna.

Nesta página

Expandir tudo | Reduzir tudo

Introdução

Bem-vindo à coluna voz de suporte do Microsoft ASP.NET! Sou Nilay B. Shah com a equipa de suporte de programador ASP.NET. Tenham trabalhado suporte ASP.NET para mais de um e meio anos. Autenticação de formulários é realmente uma funcionalidade de autenticação interessante. Este artigo aborda alguns problemas que os utilizadores tem localizado confusos com autenticação por formulários, tal como a relação entre a permissão de autenticação de formulários e o cookie de autenticação de formulários e as respectivas definições relevantes. Gostaria de agradecer Jerry Orman, responsável técnico para a equipa de suporte ASP.NET, para a ajuda incrível!

Pessoas, por vezes, questionar sobre autenticação de formulários "permissões" e "cookies" porque eles estão intimamente relacionados. Tenha deparar perguntas como estas: pode qualquer pessoa que explicam a diferença entre a expiração de cookie e a expiração da senha? Quando o cookie expira, o utilizador será redireccionado para a página de início de sessão. O que acontece quando o "ticket" expira? É também tornará o cookie expira? O que é SlidingUpdate realmente actualizado?

Irá focar estes dois aspectos de autenticação de formulários neste artigo para responder às seguintes perguntas:
  • O que é permissão de autenticação de formulários e o cookie de autenticação de formulários? Como estão relacionadas?
  • O que é a função de uma permissão em formulários autenticação?
  • Como são cookie expiração e expiração da senha relacionados?
  • Como funciona deslizante expiração no contexto da permissão de autenticação de formulários e cookie de autenticação de formulários?
  • Onde pode ser definida a propriedade de tempo limite do cookie de autenticação de formulários e permissão de autenticação de formulários?
  • Cenário de problema: A autenticação de formulários pode tempo de espera antes do valor de atributo de tempo de espera definido no ficheiro de configuração

O que é permissão de autenticação de formulários e o cookie de autenticação de formulários? Como estão relacionadas?

Cookie de autenticação de formulários é nada mas o contentor de permissão de autenticação de formulários. A permissão é passada como o valor do cookie de autenticação de formulários com cada pedido e é utilizada pela autenticação de formulários, no servidor, para identificar um utilizador autenticado.

No entanto, se é optar por utilizar a autenticação por formulários cookieless, a permissão será transmitida no URL num formato encriptado. Autenticação por formulários cookieless é utilizada porque, por vezes, os browsers cliente bloquear cookies. Esta funcionalidade é introduzida no Microsoft .NET Framework 2.0.

Para mais informações, visite o seguinte Web 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)

O que é a função de uma permissão na autenticação de formulários?

A permissão de autenticação de formulários é utilizada para indicar o ASP.NET aplicação quem é. Deste modo, permissão é o bloco de construção de formulários de segurança da autenticação.

A permissão está encriptada e assinada utilizando o <machinekey> elemento de configuração do ficheiro Machine.config do servidor. O ASP.NET 2.0 utiliza decryptionKey e o novo atributo de desencriptação do <machinekey> permissões de autenticação de formulários do elemento para encriptar. O atributo de desencriptação permite-lhe especificar o algoritmo de encriptação a utilizar. ASP.NET 1.1 e 1.0 utilizar a encriptação 3DES, que não é configurável. Adulteração com o valor de autorização é determinado por uma falha ao desencriptar a permissão no servidor. Como resultado, o utilizador vai ser redireccionado para a página de início de sessão.

Se a aplicação é implementada numa Web farm., deve certificar-se de que os ficheiros de configuração em cada servidor partilhar o mesmo valor para os atributos validationKey e decryptionKey o <machinekey> tag, que são utilizados para criação de algoritmos hash e desencriptação do "ticket" respectivamente. Terá de o fazer porque não pode garantir o servidor que processará os pedidos sucessivos. Para mais informações sobre encriptação FormsAuthenticationTicket e considerações de implementação de farm de servidores Web, visite o seguinte site da Web MSDN:
http://msdn2.microsoft.com/en-us/library/ms998288.aspx (http://msdn2.microsoft.com/en-us/library/ms998288.aspx)
Um descrição passo passo através dos métodos manualmente gerar chaves pode ser encontrado nos seguintes artigos da base de dados de conhecimento da Microsoft:
312906  (http://support.microsoft.com/kb/312906/ ) A criação de chaves utilizando o Visual C# .NET para utilização na autenticação de formulários
313091  (http://support.microsoft.com/kb/313091/ ) A criação de chaves utilizando o Visual Basic .NET para utilização na autenticação de formulários
Permissões de autenticação de formulários podem ser geradas manualmente utilizando a classe FormsAuthenticationTicket . Para mais informações, visite o seguinte site da Web 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 cookie expiração e expiração da senha relacionados?

No caso de cookie não persistente, se a permissão tiver expirada, cookie também irá expirar e o utilizador será redireccionado para a página de início de sessão. No outro lado, se a permissão estiver marcada como persistente, onde o cookie está armazenado na caixa de cliente, browsers podem utilizar o mesmo cookie de autenticação para iniciar sessão para o Web site sempre. No entanto, é possível utilizar o método de FormsAuthentication.SignOut para eliminar persistentes ou os cookies não persistentes explicitamente.

Para mais informações sobre o método FormsAuthentication.SignOut , visite o seguinte site da Web 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 por formulários cookieless, se o browser estiver fechado, perde-se a permissão e será gerada uma nova permissão na próxima solicitação.

Como funciona deslizante expiração no contexto da permissão de autenticação de formulários e cookie de autenticação de formulários?

A expiração variável funciona exactamente da mesma forma!

Informe-nos obter um exemplo: Se a página de início de sessão é acedida em 5: 00: 00: 00 00, deve expirar na linha 5: 10: 00: 00 00 se o atributo timeout é 10 e o atributo slidingExpiration estiver definido como TRUE. Agora, se uma página Web é consultada novamente no 17: 05: 00: 00 00, cookies e período de tempo limite permissão serão repostas para 17: 15: 00: 00 00.

Nota Se a página Web for acedida antes de metade do tempo de validade ter decorrido, o tempo de expiração de permissão não será reposto. Primeiro plano exemplo, se uma página Web é acedida novamente no 17: 04: 00: 00 00, os cookies e período de tempo limite permissão não será reposto.

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

Onde pode ser definido o valor de limite de tempo do cookie de autenticação de formulários e a permissão de autenticação de formulários?

A definição única que pode efectuar é no ficheiro Web.config ou no ficheiro Machine.config, in a <forms> tag. Esta alteração irá determinar o período de tempo limite de autenticação por formulários no contexto de uma permissão ou cookie a menos que a permissão é criada 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 mais informações, visite o seguinte site da Web MSDN:
http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspx (http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspx)
Se a permissão é criada manualmente utilizando a classe FormsAuthenticationTicket , o limite de tempo pode ser definida através do atributo de expiração . Este valor irá substituir o valor de atributo de limite de tempo especificado nos ficheiros de configuração.

Para obter mais informações sobre membros FormsAuthenticationTicket , visite o seguinte site da Web 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 tempo de espera antes do valor de atributo de tempo de espera definido no ficheiro de configuração

Se a permissão de autenticação de formulários é criada manualmente, a propriedade de tempo limite da permissão substituirá o valor definido no ficheiro de configuração. Por conseguinte, se esse valor for inferior ao valor no ficheiro de configuração, os formulários de permissão de autenticação irá expirar antes da configuração do ficheiro tempo de espera atributo valor e vice-versa. Por exemplo, suponha que vamos o <forms> atributo timeout é definido para 30 no ficheiro Web.config e o valor de expiração da permissão é definido para 20 minutos. Neste caso, a permissão de autenticação de formulários expira após 20 minutos e o utilizador terá de iniciar sessão novamente depois.

Hiperligações relacionadas

910439  (http://support.microsoft.com/kb/910439/ ) Resolver problemas de autenticação de formulários
Para obter o ficheiro FormsAuthLogger.exe que é mencionado no artigo de base de dados de conhecimento da Microsoft 910439, visite o seguinte Web site da Microsoft:
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/ ) Resolução de problemas do ASP.NET
301240  (http://support.microsoft.com/kb/301240/ ) Como implementar a autenticação baseada em formulários na aplicação do ASP.NET utilizando C# .NET
308157  (http://support.microsoft.com/kb/308157/ ) Como implementar a autenticação baseada em formulários na aplicação do ASP.NET utilizando o Visual Basic .NET
Esperamos ter encontrado estas informações úteis no easing alguns a confusão envolvida com permissão de autenticação de formulários do ASP.NET e o cookie. Não se esqueça, as colunas de voz de suporte para si! Como sempre, vontade submeter ideias tópicos pretendidos no futuro corrigida colunas ou de utilizar o formulário Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) Microsoft Knowledge Base.

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 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: 910443  (http://support.microsoft.com/kb/910443/en-us/ )