ASP.NET在IE10中Form表單身分識別驗證失效問題解決方案

來源:互聯網
上載者:User
我的系統遇到了這個問題,還好有好心網友發布了一篇文章: ---------網上找的原文如下---------------------------IE10中Session丟失問題引起眾多業內人士的關注,今天發現在IE10中登入網站時,使用表單驗證機制(FormsAuthentication)卻無法判斷該使用者已登入,儲存的Session總會丟失,本文將介紹解決方案,感興趣的朋友可以參考下,或許對你有所協助 今天發現在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專門用來修複這個問題,各位如遇到同樣的問題,可參考以下說明: 
KB2600088: Hotfix 適用在 Microsoft.NET Framework 4.0 中的 ASP.NET [英文] 
KB2608565: Hotfix 適用在 .NET Framework 3.5.1 中的 ASP.NET [英文] 
KB2600100: Hotfix 適用在 .NET Framework 3.5 SP1 與 .NET Framework 2.0 SP2 中的 ASP.NET [英文]
簡單的解決方案是,在網站根目錄,新增一個瀏覽器定義檔案(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> 

設定完成,問題即可解決 --------------------------------------------------------------------- 我用加入的瀏覽器自訂檔案解決了問題,不過對App_Browers不是很瞭解  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.