2009-04-17 29 views
5

我們正在開發網上商店,並使用第三方UI處理付款。在iframe中失去會話狀態,但不在彈出窗口中

儘管我們現在認識到付款解決方案提供商建議使用頂級窗口,但我們選擇在iframe內外退出頁面內顯示付款用戶界面。

現在發生的情況是,在IE7/IE8中,付款用戶界面在第一次回發(在iframe內)失去會話狀態,而在Firefox中,它工作得很好。我們觀察到付款用戶界面是使用ASP.NET開發的。

我的印象是,就服務器而言,從iframe和頂層窗口引用並沒有區別,但顯然存在。

有沒有人有線索? iframe做什麼可能會對付款服務器產生影響,導致它失去會話狀態?

難道它(它突然在我身上發現)是Cookie處理的差異嗎?更嚴格的安全可能?

回答

7

可能由此引起:

的Internet Explorer 6推出了針對隱私首選項平臺(P3P)項目的支持。 P3P標準指出,如果FRAMESET或父窗口引用FRAME內部或子窗口內的其他站點,則該子站點將被視爲第三方內容。使用默認隱私設置「中」的Internet Explorer會默默拒絕來自第三方網站的Cookie。

http://support.microsoft.com/kb/323752/en-us

我曾經聽到有人說,一個IFrame實際上是IE瀏覽器的一個新實例,但顯然這是一個比較複雜一點。

+0

當然!這可能就是它!回到繪圖板 – 2009-04-17 09:53:43

+1

您可以通過確保您和付款提供商都已定義P3P語句來解決此問題:這將允許IE接受第三方Cookie - 當IE 6推出廣告時必須執行類似的操作在遠程廣告服務器的IFrame中提供。 – 2009-04-17 10:54:58

+0

謝謝,我會檢查一下! – 2009-04-20 09:31:52

0

所以你的代碼的結構/網站將是這樣的:

  1. 站點A有1具有顯示站點B
  2. 的iframe更新的iframe,現在從站點A
  3. 顯示第2頁

當你右鍵點擊iframe的內容時,你可以驗證url是否對應於站點A?

如果您調試,第2頁是否按預期觸發您的斷點?

1

您可能會發現this article by Milan Negovan有助於解釋爲什麼帶框頁面會獲得單獨的會話ID。文章還談到了上面Gerrie Schenck提到的P3P解決方案。