解決 Iframe跨域session 丟失問題


近在開發一個新浪微博的第三方應用的項目(http://apps.weibo.com/weilvyou,在項目中用到了session 。在測試時發現session 取不到值,以為是session賦值除了問題,但是在Chrome中一切正常,故排除此原因。那問題肯定出在瀏覽器身上里。於是一步一步調試,發現在IE中,如果頁面跳轉,SessionId 就改變了,問題找到了。然后看了人家其他的一些App,發現他們的請求中

有這樣一項頭部信息——P3P

出於隱私安全的考慮,IE會丟失Iframe中的CookieIE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)協議默認阻止第三方無隱私安全聲明的cookieFirefoxChrome 不存在此問題。

 

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

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

 

Asp.Net中可以這樣做:

Global.asax.cs文件中添加如下所示代碼: 

 

原文地址:http://www.cnblogs.com/xumingxiang/archive/2012/09/05/2671690.html

作者 : 徐明祥
出處: http://www.cnblogs.com/xumingxiang 
版權:本文版權歸作者和博客園共有
轉載:歡迎轉載,為了保存作者的創作熱情,請按要求【轉載】,謝謝
要求:未經作者同意,必須保留此段聲明;必須在文章中給出原文連接;否則必究法律責任 

 


免責聲明!

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



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