IE10,IE11下cookie無法寫入問題


asp.net 4.0的程序,發布后,測試在ie6,ie7,ie8,ie9下均可以正常登錄,但是在ie10,ie11下就是無法保存cookie,排查了一下是否ie10,ie11是否存在設置問題發下並不是。

從別人的解決方案中找到了兩種解決方案:

1,)第一種解決方案,在web.confgi authentication/forms屬性中添加 cookieless="UseCookies"

如果你在程序中使用Form驗證並使用cookie保存用戶的登錄狀態,請切記:

<authentication mode="Forms">

    .......

    <forms cookieless="UseCookies" ... />

</authentication>中要加上cookieless="UseCookies"。如果不這樣設置的話,cookieless會使用默認值UseDeviceProfile。用了UseDeviceProfile,悲劇就發生了,ASP.NET會根據Request.Browser.Cookies來判斷當前瀏覽器是否支持Cookie(如若不信,請用Reflector查看System.Web.Security.FormsAuthentication的代碼)。而Request.Browser.Cookies會認為上面的三種情況不支持cookie(可能還有更多誤判的情況)。

2,)第二種解決方案,

在網站的根目錄,新增一個瀏覽器定義文件,步驟如下:

1、添加一個"App_Browsers"文件夾 ;

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

3、在文件中添加如下內容(下面的配置表示,對所有的設備和瀏覽器,都支持Cookies):

1 <browsers>  
2      <browser refID="Default">  
3           <capabilities><!-- To avoid wrong detections of e.g. IE10 -->  
4              <capability name="cookies" value="true" />  
5              <capability name="ecmascriptversion" value="3.0" />  
6           </capabilities>  
7       </browser>  
8  </browsers>  

 

 

參考文章:

http://www.cnblogs.com/maoniu602/p/3799958.html

http://www.cnblogs.com/dudu/archive/2011/03/06/asp_net_4_browser_cookie.html

 


免責聲明!

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



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