IE下iframe跨域登錄session丟失問題


網上有這類文章,一般表現為a站點有iframe,iframe的src指向b站,b站登錄后保存該域cookie,下次再訪問的時候就可以帶上這個cookie,但IE下失效。

而我的情況有些類似,但不盡然;

我的是a站有iframe,但src是指向自己(如,login.aspx頁)。然后login有個form,action到B站點,然而去B站點就只是拿一些資料,加密后給回a站點進行登錄(cookie寫入)。

但發現此時的cookie已經寫不進了。

這里應該就是session已經變了,說應該是因為我沒確認過。

解決方法也很簡單,和網上的一樣。

問題根源:

  IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)協議默認阻止第三方無隱私安全聲明的cookie,Firefox目前還不支持P3P安全特性,firefox中自然也不存 在此問題了。Mircosoft對此的具體描述可以參見 Privacy in Internet Explorer 6 

解決辦法是在要嵌入的內容中(iframe指向的站點)輸出P3P的主機頭聲明:

給個連接 百度文庫

http://wenku.baidu.com/view/ea504514866fb84ae45c8d2c.html

貼個C#代碼

if (Request.Browser.Browser.ToUpper().Contains("IE"))
                Response.Headers.Add("P3P", "CP=CAO PSA OUR");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM