我有一個集成了iframe的asp.net網頁。在此iframe中,我調用window.open打開一個彈出窗口。彈出網址是絕對的,但在同一個域內。在彈出窗口中失去asp.net會話。只有在IE中,只有一些用戶
對於使用Internet Explorer(多個版本)的用戶約1%,asp.net會話對象在彈出窗口中丟失(空)。
我已經嘗試收集設置信息來識別來自一組用戶但沒有結果的模式。一個理論是,他們都是思傑的客戶,但事實並非如此。
有沒有人經歷過類似的東西並解決了它?
我有一個集成了iframe的asp.net網頁。在此iframe中,我調用window.open打開一個彈出窗口。彈出網址是絕對的,但在同一個域內。在彈出窗口中失去asp.net會話。只有在IE中,只有一些用戶
對於使用Internet Explorer(多個版本)的用戶約1%,asp.net會話對象在彈出窗口中丟失(空)。
我已經嘗試收集設置信息來識別來自一組用戶但沒有結果的模式。一個理論是,他們都是思傑的客戶,但事實並非如此。
有沒有人經歷過類似的東西並解決了它?
我猜你的網站沒有一個有效的P3P標題來定義你如何跟蹤用戶,所以IE不會轉發[session] cookies與http請求。
您可以通過在web.config中添加示例P3P標頭來驗證此情況。您將需要了解不同的標記的含義,以及這個示例標題是否與您的用例相匹配,或者您是否需要創建自己的標記。
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="P3P" value="CP="NON COR CUR OUR BUS NAV"" />
</customHeaders>
</httpProtocol>
</system.webServer>
對於我們而言,ASP.NET: Popup browser windows and session cookies有相關答案。在我們的例子中,使用Jetty網絡服務器,所以要小心你過濾的內容。
從指向網站的桌面上的「常規」快捷方式啓動瀏覽器。用IE8。 (我沒有找到我的MSDN參考,但我認爲它只是Windows XP。)注意:Citrix用戶經常被迫使用桌面上的鏈接。所以這可能會解決Citrix問題的一部分。
這裏還有更多非常類似的問題。你在這裏簽出所有的職位上的計算器,包括:
如果讓我總結一下:
這裏遵循的指導原則: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。否則,這可能會在稍後瀏覽器驗證您的內容/行爲與您聲明的相比時產生影響。
沒有人希望從某些瀏覽器供應商列入黑名單,對吧?
相同的域**和**相同的Web應用程序? – EdSF
是的,相同的域和應用程序。 – lox