Select the product you need help with
Solucionar problemas de autenticação de formuláriosID do artigo: 910439 - Exibir os produtos aos quais esse artigo se aplica. Coluna de voz de suporte do ASP .NETSolucionando problemas de autenticação de formuláriospara 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áginaBem-vindo à coluna ASP.NET suporte voz! Meu nome é Jerry Andrade. Eu foram com a Microsoft por 5 anos e passaram a maior parte do meu tempo enfoca relacionada à Web tecnologias como o Microsoft FrontPage e as novas tecnologias Microsoft SharePoint. Passei o último ano trabalhando com Microsoft ASP.NET como um engenheiro de suporte. Este mês na Support Voice coluna, vou explicar como solucionar problemas de autenticação de formulários no Microsoft ASP.NET. Solucionando problemas de autenticação de formuláriosQuando você usa autenticação de formulários em um aplicativo ASP.NET, talvez seja necessário para solucionar um problema que ocorre quando o usuário aleatoriamente é redirecionado para a página de login. Em um mundo ideal, esse problema poderia ocorrer de uma maneira que permitiria que você facilmente anexar um depurador e captura o problema. Em ambientes de produção, entretanto, isso é raramente o caso. Para solucionar um problema aleatório como esse, você precisa fazer logon informações relacionadas ao problema para que você pode restringir a causa raiz. Nesta coluna, abordaremos resumidamente o conceito de autenticação de formulários. Em seguida, veremos em quais cenários de levam a um usuário que está sendo redirecionado para a página de login e como capturar dados que são relevantes para isolar o problema. Também abordaremos como implementar uma interface IHttpModule para registrar informações de autenticação de formulários. Visão geral de autenticação de formuláriosQuando um usuário é autenticado em um site da Web usando autenticação de formulários, o servidor cria um cookie. O valor do cookie é um tíquete de autenticação formulários criptografado. O cookie é passado para o servidor em cada solicitação para o aplicativo e a classe FormsAuthenticationModule descriptografa o valor do cookie e determina se o usuário é válido ou não.Por padrão, o FormsAuthenticationModule classe é adicionada no arquivo Machine.config. A classe FormsAuthenticationModule gerencia o processo FormsAuthentication. A seguir está uma entrada do arquivo Machine.config:
http://msdn2.microsoft.com/en-us/library/7t6b43z4.aspx
(http://msdn2.microsoft.com/en-us/library/7t6b43z4.aspx)
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication(vs.71).aspx
(http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication(vs.71).aspx)
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket(vs.71).aspx Para obter mais informações sobre como compartilhar os cookies de autenticação de formulários, visite o seguinte site da Web do ASP.NET:
(http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket(vs.71).aspx)
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/formsauth.aspx
(http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/formsauth.aspx)
Razões que um usuário pode ser redirecionado para a página de loginO cookie de autenticação de formulários é perdidoCenário 1Nesse cenário, um usuário faz logon para o site da Web. Em algum momento, o cliente envia uma solicitação para o servidor e a classe FormsAuthenticationModule não recebe o cookie. Você pode determinar se uma solicitação de usuário não contém o cookie habilitando o cookie de logon no Microsoft Internet Information Services (IIS). Para fazer isso, execute estas etapas:
Observação Você pode usar o Log Parser para analisar os logs do IIS. Para baixar o Log Parser, visite o seguinte site da Microsoft: http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07 Depois de ter a lista de solicitações de usuário específico, procure as solicitações para a página de login. Você sabe que eles foram redirecionados para esta página e você deseja ver as solicitações antes de ocorrer o redirecionamento. Se você estiver vendo algo semelhante à seguinte, o cliente ou não enviou o cookie ou o cookie foi removido da rede entre o cliente e o servidor.
(http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07)
Este é o logon inicial. Recolher esta tabela
Recolher esta tabela
Observação A primeira solicitação do usuário não é provável que tem um cookie de autenticação de formulários, a menos que você está criando um cookie persistente. O log do IIS só mostrará os cookies que foram recebidos na solicitação. A primeira solicitação para que o cookie de autenticação de formulários estará na solicitação após uma tentativa de logon bem-sucedida. Cenário 2O cookie de autenticação de formulários também pode ser perdido quando cookie limite do cliente for excedido. No Microsoft Internet Explorer, há um limite de 20 cookies. Depois que o cookie 20 é criado no cliente, cookies anteriores são removidos da coleção do cliente. Se o cookie ASPXAUTH for removido, o usuário será redirecionado para a página de logon quando a próxima solicitação é processada. Você pode solucionar esses dois cenários da mesma maneira. Examine a solicitação antes do redirecionamento para a página de logon. Se a solicitação para esta página gera cookies, isso será algo para investigar. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft: 306070
(http://support.microsoft.com/kb/306070/
)
Limites de números e tamanho de um cookie no Internet Explorer Você pode usar o Fiddler para exibir os cabeçalhos HTTP que são enviados para o cliente. Após capturar o tráfego, clique duas vezes em uma solicitação e clique em cabeçalhos para ver o cabeçalho Set-cookie. Se você rastrear um logon bem-sucedido, você verá o cabeçalho Set-cookie na resposta de um logon bem-sucedida. Para baixar o Fiddler, visite o seguinte site do Fiddler: http://www.fiddlertool.com/fiddler/
(http://www.fiddlertool.com/fiddler/)
Cenário 3Depois que a solicitação deixa o cliente, há várias camadas que podem afetar os pacotes que estão sendo enviados. Para determinar se um dispositivo de rede está removendo o cookie, é necessário que capturar um rastreamento de rede no cliente e o servidor e, em seguida, examinar o corpo da solicitação para o cookie. Você deseja examinar a solicitação do cliente para garantir que o cookie foi enviado e verificar o rastreamento de servidor para certificar-se que o servidor recebeu o cookie. solicitação do cliente Isso é uma solicitação GET depois que o usuário tenha sido autenticado. As informações de permissão de autenticação de formulários são realçadas em azul. Isso confirma que o cookie informações à esquerda o cliente. When you use a network capture tool, like Netmon, you see the traffic that actually went through the adapter. Quando você examinar a solicitação atingiu o servidor, você deseja garantir que o servidor recebeu as mesmas informações que o cliente enviado. Se o servidor não recebeu as mesmas informações, você precisa investigar outros dispositivos na rede para determinar onde o cookie foi removido. Observação Também há instâncias de filtros ISAPI removendo cookies. Se você confirmar que o servidor Web recebeu o cookie, mas o cookie não está listado nos logs do IIS, verifique os filtros ISAPI. Talvez você precise remover os filtros para ver se o problema foi resolvido. O tíquete de autenticação de formulários expiraA outra causa comum para um usuário a ser redirecionado é se o tíquete de autenticação de formulários expirou. O tíquete de autenticação de formulários pode tempo limite de duas maneiras. O primeiro cenário ocorre se você usar expiração absoluta. Com expiração absoluta, a permissão de autenticação expira quando expira o tempo de expiração. Por exemplo, você definir uma expiração de 20 minutos, e um usuário visita o site às 2: 00. O usuário será redirecionado para a página de logon se o usuário visitar o site após 14: 20.Se você usar expiração sliding, o cenário é um pouco mais complicado. O cookie e a permissão resultante são atualizados quando o usuário visitar o site após a hora de vencimento expirado metade. Por exemplo, você definir uma expiração de 20 minutos usando a expiração deslizante. Um usuário visita o site às 2: 00, e o usuário recebe um cookie é configurado para expirar em 14: 20. A expiração será atualizada apenas se o usuário visitar o site após 14: 10. Se o usuário visitar o site em 14: 09, o tíquete não é atualizado porque metade do tempo de expiração não passou. Se o usuário aguarda, em seguida, 12 minutos, visitando o site em 14: 21, a permissão será ser expirada. O usuário é redirecionado para a página de login. Uma maneira a abordagem esse tipo de problema é registrar as informações cookie e permissão do autenticação de formulários. Dessa forma, você pode ver a se o cookie foi recebido pelo IIS e quais são os valores. Você pode fazer isso escrevendo um HttpModule e conectando desse módulo no pipeline de solicitação. Você não precisará modificar o código do aplicativo para obter informações que necessárias. O exemplo anexado funciona no Microsoft .NET Framework 1.1 e o .NET Framework 2.0 e tem comentários em todo. O exemplo inclui os seguintes arquivos:
Eu será destaque as áreas principais:
Para obter mais informações sobre autenticação de formulários, você pode baixar os arquivos FormsAuthLogger exemplo a seguir: Recolher esta imagem ![]()
(http://download.microsoft.com/download/7/2/7/727b0cf2-d4fc-4d19-a632-aa3477998fcd/formsauthlogger.exe)
Como sempre, vontade enviar idéias sobre tópicos desejado no futuro abordada colunas ou na Base de dados de Conhecimento usando o formulário Ask For It
(http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=)
.PropriedadesID do artigo: 910439 - Última revisão: quinta-feira, 31 de maio de 2007 - Revisão: 1.5 A informação contida neste artigo aplica-se a:
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: 910439
(http://support.microsoft.com/kb/910439/en-us/
)
| Traduções deste artigo |





Voltar para o início








