IE 跨域session丟失問題


在測試時發現session 取不到值,以為是session賦值除了問題,但是在Chrome中一切正常,故排除此原因。那問題肯定出在瀏覽器身上里。於是一步一步調試,發現在IE中,如果頁面跳轉,SessionId 就改變了,問題找到了。

出於隱私安全的考慮,IE會丟失Iframe中的Cookie,IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)協議默認阻止第三方無隱私安全聲明的cookie,

Firefox、Chrome 不存在此問題。

我們知道Session 其實就是基於Cookie的。客戶端在第一次與服務器建立會話時,會分配給客戶端一個隨機的sessionId,並存於客戶端cookie中,然后在之后的請求中,會帶上這個Cookie,如果在客戶端找不到這樣的Cookie,那么服務器就會重新分配一個。

那么要解決這個問題就是要在請求時添加“P3P”協議。

在Asp.Net MVC中可以利用Attribute來做:

 


免責聲明!

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



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