ASP classic在Firefox中读取.NET cookie,但不读取IE

时间:2009-06-22 10:37:57

标签: asp.net cookies asp-classic

在尝试在subdomain1.mydomain.com上设置cookie以供subdomain2.mydomain.com读取时,遇到ASP.NET问题。

“subdomain1”是在IIS 6上运行的 ASP.NET 应用程序。 “subdomain2”是在IIS6上运行的 ASP Classic 应用程序。

我不明白的是,当我在Firefox中测试我的.NET页面(下面)时,它可以工作。如果我在IE8下测试它,似乎没有cookie存储/传递给subdomain2。我在下面的代码中尝试了很多变化,但无济于事(包括添加到期日期/时间):

Dim k As Guid = Guid.NewGuid
Dim c As New HttpCookie("Interstitial")

With c
.Values("a") = 1
.Values("b") = 2
.Values("c") = 3
.Values("d") = 4
.Domain = ".mydomain.com"
End With

Response.AppendCookie(c) 'Have also used Response.Cookies.Add(c)

Dim url As String = String.Format("https://subdomain2.mydomain.com/?d={0}", k.ToString)

Response.Redirect(url)

可能相关的其他信息:

  • 执行上述代码以响应回发(按钮点击)
  • 在IE8下,response.redirect()似乎导致浏览器请求永远不会完成

非常感谢任何提示/想法。

由于

2 个答案:

答案 0 :(得分:1)

您是否尝试通过Fiddler运行该页面?这是一个出色的工具,因为它显示了请求的所有HTTP活动。

我之前遇到过一些奇怪的浏览器问题,这些问题最终会像网络配置一样深奥。提琴手很擅长解决这些问题。

答案 1 :(得分:0)

我相信这是设计(也许是一个有缺陷的设计)。如果请求不在同一域中,WinINET会故意选择不在后续请求中转发重定向响应中设置的Cookie。

请不要引用我,但我相信这是一个错误的安全补丁的结果,该错误发现WinINET转发重定向响应位置的Set-Cookie标头中的任何Cookie,即使目标不在相同的域名。

我怀疑这个错误修复程序比它需要的更严苛。