首页 > 代码库 > MVC .NET4 IE10下FormsAuthentication.SetAuthCookie无效的问题

MVC .NET4 IE10下FormsAuthentication.SetAuthCookie无效的问题

MVC .NET4 IE10下FormsAuthentication.SetAuthCookie无效的问题

最初的问题是网站在IE10下不兼容,使用兼容性代码:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10">  

让IE强制使用兼容模式,但是这种情况在有的电脑上没有管理员权限的时候是无效的,

即用IE打开了使用上面这段代码的页面后,按F12,

IE的模式还是IE模式,不是想要的IE10兼容模式。

在有管理员权限的电脑上,变成了IE10兼容模式,问题解决。


另外FormsAuthentication.SetAuthCookie无效的问题,在IE10兼容模式下OK,在IE10模式下无反应。


简单的解决方法是,在网站根目录,新增一个浏览器定义文件(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=http://www.mamicode.com/"true" /> >

FormsAuthentication.SetAuthCookie无效的问题得到解决,页面是IE10 模式。

当然还可以参考MS的文章:

在 IIS 上实现 META 切换

Microsoft IIS 能够定义自定义 HTTP 响应标头以便所有页面自动以 EmulateIE7 模式呈现

http://msdn.microsoft.com/zh-cn/library/cc817572.aspx