2009-06-22 44 views
3

如果尝试在subdomain1.mydomain.com上设置cookie以便由subdomain2.mydomain.com读取,则ASP.NET存在问题。ASP classic在Firefox中读取.NET cookie,但不包含IE

“subdomain1” 是IIS 6上运行 “subdomain2” 是上IIS6运行的ASP经典应用一个ASP.NET应用。

我不明白的是,当我在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的()似乎会导致浏览器请求写不完

任何提示/想法将不胜感激。

感谢

回答

1

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

我以前有问题,其中有奇怪的浏览器问题,最终像网络配置相当深奥。提琴手非常擅长解决这些问题。

+0

嗨,我实际上 - 在IE中,我得到一个响应代码302'Moved Temporarily'(这是Response.Redirect,我相信)...然后什么也没有。 – Richard 2009-06-22 10:52:11

0

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

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

我怀疑是因为这个bug修复比它需要的更严厉。

相关问题