您的位置:首页 > 其它

IE10,IE11下cookie无法写入问题

2015-11-12 14:53 477 查看
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" ... />

[b]</authentication>中要加上cookieless="UseCookies"[/b]。如果不这样设置的话,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):

<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>


参考文章:

/article/5091061.html

/article/4583826.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: