2012-05-11 20 views
0

我有一個集成了iframe的asp.net網頁。在此iframe中,我調用window.open打開一個彈出窗口。彈出網址是絕對的,但在同一個域內。在彈出窗口中失去asp.net會話。只有在IE中,只有一些用戶

對於使用Internet Explorer(多個版本)的用戶約1%,asp.net會話對象在彈出窗口中丟失(空)。

我已經嘗試收集設置信息來識別來自一組用戶但沒有結果的模式。一個理論是,他們都是思傑的客戶,但事實並非如此。

有沒有人經歷過類似的東西並解決了它?

+0

相同的域**和**相同的Web應用程序? – EdSF

+0

是的,相同的域和應用程序。 – lox

回答

0

我猜你的網站沒有一個有效的P3P標題來定義你如何跟蹤用戶,所以IE不會轉發[session] cookies與http請求。

您可以通過在web.config中添加示例P3P標頭來驗證此情況。您將需要了解不同的標記的含義,以及這個示例標題是否與您的用例相匹配,或者您是否需要創建自己的標記。

<system.webServer> 
    <httpProtocol> 
    <customHeaders> 
     <add name="P3P" value="CP=&quot;NON COR CUR OUR BUS NAV&quot;" /> 
    </customHeaders> 
    </httpProtocol> 
</system.webServer> 
0

對於我們而言,ASP.NET: Popup browser windows and session cookies有相關答案。在我們的例子中,使用Jetty網絡服務器,所以要小心你過濾的內容。

從指向網站的桌面上的「常規」快捷方式啓動瀏覽器。用IE8。 (我沒有找到我的MSDN參考,但我認爲它只是Windows XP。)注意:Citrix用戶經常被迫使用桌面上的鏈接。所以這可能會解決Citrix問題的一部分。

這裏還有更多非常類似的問題。你在這裏簽出所有的職位上的計算器,包括:

  1. IE8 losing session cookies in popup windows (也有人認爲是關於IE7回答類似的問題: ASP.NET 2.0 Session variables lost in pop up window in IE 7 when deployed on server
  2. IE8 loses cookies when opening a new window after a redirect(在第一個問題也被稱爲)是一個彈出窗口打開從模式彈出或somesuch問題。 IE 8 beta版本,所以可能無關緊要。
  3. IE8 losing session details(錯誤在一個Java庫,所以也可能不相關)

如果讓我總結一下:

  1. 有很多的問題,這似乎有asp.net中共同。嘗試通過他們看。
  2. 您說沒有特定的Internet Explorer版本會受到影響。這意味着您可能會針對不同版本的IE瀏覽不同的問題。
  3. a)我認爲stackoverflow應該有大部分答案。
0

這裏遵循的指導原則:http://www.w3.org/P3P/details.html

您應該構建自己的P3P策略。

舉個例子,如果你把它添加到你的Global中。ASAX,它工作在IE8:

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""); 
} 

BUT!不只是複製上面的示例,因爲政策必須反映您的網站上的實際privacypolicy。否則,這可能會在稍後瀏覽器驗證您的內容/行爲與您聲明的相比時產生影響。

沒有人希望從某些瀏覽器供應商列入黑名單,對吧?