解決ASP.NET在IE10中Session丟失問題


    引用: http://www.cnblogs.com/fanvy/archive/2013/02/07/2908769.html
今天發現在IE10中登錄我公司的一個網站時,點擊其它菜單,頁面總會自動重新退出到登錄頁,后檢查發現,IE10送出的HTTP頭,和 .AUTH
Cookie都沒問題,但使用表單驗證機制(FormsAuthentication)卻無法判斷該用戶已登入,保存的Session總會丟失.

     后查實這是ASP.NET
2.0,3.5和4.0的Bugs,因這些版本無法識別IE10的User-Agent標頭字符串,所以無法識別用戶瀏覽器的版本,從而導至了ASP.NET的特定功能失效,認為游覽器不支持Cookies功能,不處理與Cookie相關的程式碼等,從而在瀏覽器中不保存服務器返回的Session標識,造成丟失等.


      這個問題早經微軟官方確認,是IE10的一個Bug,也發布了兩個HOTFIX專門用來修復這個問題,各位如遇到同樣的問題,可參考以下說明:



    簡單的解決方法是,在網站根目錄,新增一個瀏覽器定義文件(browser definition file)


     步驟如下:


     1.添加一個"App_Browsers"文件夾


     2.添加一個"*.browser"后綴的文件,如IE10.browser.


     3.添加文件內容如下:


< browsers >   

       <browser refID="Default">  


          <capabilities><!-- To avoid wrong detections of e.g. IE10 -->  


             <capability name="cookies" value="true" />  


            <capability name="ecmascriptversion" value="3.0" />  


        </capabilities>  


        </browser>  


       </browsers>  


 設定完成,問題即可解決,本方法同時也適用於處理asp.net中控件事件回發操作無效問題。


免責聲明!

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



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