1、IE瀏覽器iframe跨域丟失Session問題
在開發中,我們經常會遇到使用Frame來工作,而且有時是為了跟其他網站集成,應用到多域的情況下,而Iframe是不能保存Session的因此,網上可以找到很多相關的文章,如果網站可以采用設置Web.Config中的配置: mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="40" />
把cookieless="false"改成"true"就可以了但也同樣有個小問題,就是如果頁面中采用Javascript的window.location.href=''這樣的方式來重定向的話,系統會認為這是另一個新的請求,產生一個新的SessionId,導致原Session同樣的丟失所以對於重定向,還是使用Response.Redirect()為好
除了Ifrmae有丟Session問題外,frameset也有同樣的問題Frameset的問題更不確定,是有時會丟,有時不會丟,這更認人頭痛,在網上找到了一個方法,在頁面page_onload里添加一語句:
Response.AddHeader("P3P","CP=CAO PSA OUR");
FrameSet中的Session丟失問題就解決了至於里面具體的原因 也沒時間去搞懂了
最簡單的方法就是在iis里設置,解決辦法,response.addHeader("P3P","CP=CAO PSA OUR")。
不過難道我們需要在每個頁面都加這個么?不需要的,如果有權配置IIS服務器,打開IIS
管理工具——〉選擇一個網站——〉屬性——〉http頭,增加一個http頭
然后輸入頭名:P3P,輸入頭內容:CP=CAO PSA OUR
如果沒有權限配置IIS服務器,但是你用的是asp.net的話,可以用httpmodual來實現在全部頁面或者部分頁面頭部插入所需要的標志