2009年11月18日 星期三

ASP 在 IE瀏覽器中,Session遺失問題的處理

參考網址:http://support.microsoft.com/kb/323752


情況:
在IE瀏覽器內無法正常取得Session值,但在Firefox內卻可以正常的取出該Session值。

處理參考一 ( 在ASP程式內標頭加入下面語法 )
response.expires = 0
response.expiresabsolute = Now() - 1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
response.addHeader "P3P","CP='CAO PSA OUR'"
response.CacheControl = "no-cache"

處理參考二 ( 在IIS內設定 [HTTP表頭] )
1. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
2. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
3. 按一下 [ HTTP 表頭 ] 索引標籤。
4. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
5. 輸入 自訂標頭名稱(C):, P3P ,然後輸入 自訂標頭值(U):, CP="CAO PSA OUR"。

下列為參考網址內截出的內容:(為避免網址遺失的問題)
徵狀
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explore...
loadTOCNode(1, 'symptoms');

如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explorer 6 中您嘗試在這些圖文框中設定任何 Cookie 會遺失。 這是最常遇到為遺失的動態伺服器網頁 (ASP) 」 或 「 ASP.NET Web 應用程式中的工作階段狀態。 您嘗試存取 工作階段 物件,您希望存在,而傳回空白的字串中的變數。您也看到這個問題在圖文框的內容中如果您的網頁使用的網域名稱系統 (DNS) 名稱之間使用的網際網路通訊協定 (IP) 位址的替代。
發生的原因
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內...
loadTOCNode(1, 'cause');

Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內一個框架或子視窗,子網站會被視為第三方內容。 網際網路檔案總管會使用預設的隱私權設定 中 的無訊息式地拒絕寄件者的協力廠商網站的 Cookie。
回此頁最上方
解決方案
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,...
loadTOCNode(1, 'resolution');

您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,Internet Explorer 會允許設定 Cookie。請造訪下列 MSDN 網站令人滿意,並不令人滿意的原則程式碼的完整清單: 在 Internet Explorer 6 中的隱私權http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp (http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp) 簡單的壓縮原則符合此條件,如下:P3P: CP="CAO PSA OUR"
這個程式碼範例會示範您的網站提供您自己的連絡人資訊 (CAO),任何分析的資料是唯一"pseudo-analyzed 」,表示資料給您的線上人物代表,而非您實體的身分 (PSA),連接的並且您的資料未提供任何外部機構,這些機構使用 (OUR) 的存取。您可以設定此標頭,如果您在 ASP 網頁中使用 Response.AddHeader 方法。 在 ASP.NET 中,您可以使用 Response.AppendHeader 方法。 您可以使用 [IIS 管理嵌入式管理單元 (inetmgr),若要新增至靜態的檔案。 請遵循這些步驟來此標頭加入靜態檔案:
6. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
7. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
8. 按一下 [ HTTP 表頭 ] 索引標籤。
9. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
10. 輸入標頭名稱, P3P ,然後壓縮原則的字串輸入 CP =...,其中"...是您的壓縮原則的適當程式碼。
或者,Internet Explorer 使用者可以修改其隱私權設定,這樣會提示他們接受協力廠商的內容。 下列步驟顯示如何修改隱私權設定:
1. 執行的 Internet Explorer。
2. 按一下 [ 工具 ],然後按一下 [ 網際網路選項 。
3. 按一下 [ 隱私 ] 索引標籤,然後按一下 [ 進階 ]。
4. 按一下以選取 [ 覆寫自動 Cookie 處理 ] 核取方塊。
5. 若要以便 ASP 和 ASP.NET 工作階段 Cookie 設定按一下以選取 [ 永遠允許工作階段 Cookie ] 核取方塊。
6. 若要接收任何類型的第三方 Cookie 提示,] 按一下 [ 提示 第三方 Cookie ] 清單中。

沒有留言: