2009-06-22 32 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修復比它需要的更嚴厲。

相關問題