Cookies 经典Asp:Cookie损坏问题

Cookies 经典Asp:Cookie损坏问题,cookies,asp-classic,corruption,Cookies,Asp Classic,Corruption,有一个ASP应用程序与其他.net web应用程序共存。asp页面的Cookie实际上是从aspx页面写入客户端的。所以我们有一些类似于: Response.Cookies("Credo")("ID") = "ido sans lum" HTTP_COOKIE:...;Credo=ID=ido sans lum&DomainID=5&...;... 发送到客户端 ASP页面收到此cookie,但奇怪的是,它给出了损坏的结果: sID = Request.Cookies("Cr

有一个ASP应用程序与其他.net web应用程序共存。asp页面的Cookie实际上是从aspx页面写入客户端的。所以我们有一些类似于:

Response.Cookies("Credo")("ID") = "ido sans lum"
HTTP_COOKIE:...;Credo=ID=ido sans lum&DomainID=5&...;...
发送到客户端

ASP页面收到此cookie,但奇怪的是,它给出了损坏的结果:

sID = Request.Cookies("Credo")("ID") ' this gives "idosanslum"
不幸的是,我不明白为什么。我在ASP中检查了
HTTP\u COOKIE
server变量,甚至它说了这样的话:

Response.Cookies("Credo")("ID") = "ido sans lum"
HTTP_COOKIE:...;Credo=ID=ido sans lum&DomainID=5&...;...
所以我相信这意味着cookie是从浏览器正确发送的,但是
Request.Cookies(“Credo”)(“ID”)
给了我错误的结果


我是被一些配置搞砸了还是这是一个已知的错误。

在Microsoft支持站点上有一篇关于这个问题的知识库文章:

希望这有帮助

更新: 本文建议的修复方法是对cookie内容进行编码。在经典ASP中,我认为以下几点会起作用:

Response.Cookies("Credo")("ID") = Server.URLEncode("ido sans lum")

请试一试,并让我知道您发现了什么。

这是否意味着在编写cookie时,我们必须(从服务器端)逃避它。我已更新了我的答案,以解释如何根据文章解决此错误。非常确定在这种情况下,server.URLEncode将比server.HTMLEncode更好地为您服务。