Você está offline; aguardando reconexão

PROBLEMA: O ASP.NET não codificação cookies no formato UrlEncode por padrão

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: 313282
Sintomas
Quando você desenvolve aplicativos ASP.NET que compartilham cookies entre versões anteriores do Microsoft Active Server Pages (ASP) e ASP.NET do código, os dados podem não ser codificados ou unencoded conforme o esperado.
Causa
Em versões anteriores do Microsoft Active Server Pages (ASP), os cookies são codificados no formato UrlEncode quando elas são escritas e os cookies são unencoded quando eles são lidos. No entanto, ASP.NET não codificar ou unencode cookies no formato UrlEncode por padrão. Como resultado, você pode encontrar um comportamento inesperado em aplicativos ASP.NET.
Mais Informações

Passos para reproduzir o problema

  1. Em uma versão anterior do ASP, crie uma nova página ASP e adicione o código a seguir:
    <%@ Language="VBScript"%><%    Response.Cookies("MyCookie") = "some value and other characters such as #, $, and so on"    Response.Cookies("MyCookie").Path = "/"    Response.Write(Request.Cookies("MyCookie"))%><body><form id="Form1" method="post" action="CookieTest.aspx">    <input type="submit" value="Click Me" ID="Submit1" NAME="Submit1"></form></body>					
  2. Crie uma nova página .aspx chamada CookieTest.aspx no mesmo projeto ou aplicativo.
  3. Adicione o seguinte código para a página .aspx:
    <script runat="server" language="vb">    sub Page_Load()        Response.Write("Hello from CookieTest.aspx ...<br>")        Response.Write(Request.Cookies("MyCookie").Value() + "<br>")    end sub</script>					
  4. Execute a página ASP pela primeira vez. Observe a saída.
  5. Clique em Submit1 para procurar CookieTest.aspx. Observe que a saída é codificada no formato UrlEncode. Isso ocorre porque o código ASP da página anterior define os dados do cookie.
  6. Para decodificar os dados que são recuperados do cookie, use a seguinte sintaxe:
    Response.Write(Server.UrlDecode(Request.Cookies("MyCookie").Value()))					
Referências
Para obter informações adicionais sobre ASP.NET artigos e recursos, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
305140INFO: Guia de ASP.NET
Para obter informações adicionais sobre gerenciamento de estado no ASP.NET, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
307598INFO: ASP.NET State Management Overview
Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
302390COMO: Utilizar cookies em uma página ASP
Para obter mais informações, consulte os seguintes sites da Microsoft:
URL codificar URLencoded o ASP clássico

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 313282 - Última Revisão: 02/23/2007 05:16:57 - Revisão: 2.7

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbmt kbcookie kbprb kbstate KB313282 KbMtpt
Comentários
m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> ;