zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Unity Technologies-提供全面的技术支持服务
    Unity 大中华区核心业务
    帕斯卡(pascal)命名法:
    骆驼命名法
    匈牙利命名法
    软件分类
    模型规范
    命名规范
    22. Generate Parentheses 生成括号
    421. Maximum XOR of Two Numbers in an Array 数组中两个数的最大异或
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/4959016.html
Copyright © 2011-2022 走看看