ID do artigo: 917412 - Última revisão: segunda-feira, 3 de dezembro de 2007 - Revisão: 1.5

Você pode ser redirecionado para a página de logon de autenticação de formulários, ou você pode receber uma mensagem de erro ao tentar executar um aplicativo que é criado usando o .NET Framework 2.0

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.
Expandir tudo | Recolher tudo

Sintomas

Quando você tenta executar um aplicativo que é criado usando o Microsoft .NET Framework 2.0, você pode ser redirecionado para a página de logon de autenticação de formulários. Como alternativa, você receberá uma mensagem de erro semelhante à seguinte:
Erro do servidor em ' / WebSites1 ' aplicativo.
--------------------------------------------------------------------------------

Referência de objeto não definida para uma instância de um objeto.

Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da web. Examine o rastreamento da pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da exceção: System.NullReferenceException: não definida para uma instância de um objeto de referência de objeto.
Observação Você pode ter outros problemas causados pela perda de sessão.

Esse problema pode ocorrer quando uma ou ambas das seguintes condições forem verdadeiras:
  • Migrar um aplicativo da Web do .NET Framework 1.1 para o .NET Framework 2.0.
  • Você usar um script, um miniaplicativo Java, ou controlar um Microsoft ActiveX no lado do cliente para executar uma solicitação em uma Web aplicativo.

Causa

Esse problema ocorre porque o atributo HttpOnly impede que qualquer script de cliente acessem o cookie de sessão. O atributo HttpOnly ao cookie por sessão no .NET Framework 2.0.

Resolução

Para resolver esse problema, defina o atributo HttpOnly para o cookie de sessão para o valor false .

Observação Definindo o atributo HttpOnly para o valor Verdadeiro não impede que um usuário mal-intencionado acessar diretamente o cookie quando o usuário mal-intencionado tem acesso ao canal de rede. É aconselhável usar SSL (Secure Sockets LAYER) para ajudar a proteger contra isso. Estação de trabalho segurança também é importante. Um usuário mal-intencionado pode usar uma janela do navegador aberta ou um computador que contém os cookies persistentes para acessar um site usando a identidade do usuário legítimo.

Para definir o atributo HttpOnly como o valor false , substitua o método Session_Start no arquivo global.asax, usando o código a seguir.
   void Session_Start(object sender, EventArgs e)
        {
            if (Response.Cookies.Count > 0)
            {
                foreach (string s in Response.Cookies.AllKeys)
                {
                    if (s == System.Web.Security.FormsAuthentication.FormsCookieName || s.ToLower() == "asp.net_sessionid")
                    {
                        Response.Cookies[s].HttpOnly = false;
                    }
                }
            }
        }
Observação se você deseja reutilizar esse código em vários aplicativos, colocar esse código em uma classe HttpModule personalizada.

Mais Informações

Para obter mais informações sobre o atributo HttpOnly , visite o seguinte Microsoft Developer Network (MSDN) site:
http://msdn2.microsoft.com/en-us/library/system.web.httpcookie.httponly.aspx (http://msdn2.microsoft.com/en-us/library/system.web.httpcookie.httponly.aspx)
Para obter mais informações sobre a classe HttpModule , visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/zec9k340(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/zec9k340(vs.71).aspx)
Para obter mais informações sobre alterações significativas no .NET Framework 2.0 e no atributo HttpOnly , visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/netframework/aa497240.aspx (http://msdn2.microsoft.com/en-us/netframework/aa497240.aspx)
Os produtos de terceiros mencionados neste artigo são fabricados por empresas que são independentes da Microsoft. A Microsoft não oferece garantia, implícita ou não, em relação ao desempenho ou à confiabilidade desses produtos.

A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 2.0
  • Microsoft ASP.NET 2.0
Palavras-chave: 
kbmt kbprb kbbug kbinfo kbnofix kbtshoot KB917412 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: 917412  (http://support.microsoft.com/kb/917412/en-us/ )