IE11等新版本的浏览器更新 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题

一个项目里用到forms身份认证,近来突然在谷歌浏览器里以及相应的360等浏览器,不能保存COOKIE,试了很多办法,终于解决了,做个记录以备候查。

  1. web.config 里需要 增添machineKey, 如:
    <machineKey validationKey="88CB6CA6CF403C5FBB41C2F62BB7FCFCA05DE7BE" decryptionKey="B8A7CF3816C57176" validation="SHA1" />
  2. 增加这些新版本浏览器的的User-Agent是不:

在网站的根目录,新增一个浏览器定义文件,步骤如下:

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

 (4).修改完后,再到命令行下将修改后的 .browser 文件编译成程序集并安装到GAC中,如果是Windows Server 2008、Win7 win10,要以管理员身份运行命令行:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regbrowsers.exe -i

其中具体原因和详细可以访问https://www.cnblogs.com/maoniu602/p/3799958.html

猜你喜欢

转载自blog.csdn.net/hezudao25/article/details/82842440
今日推荐