zoukankan      html  css  js  c++  java
  • [Bug]IE11下,forms认证,出现无法保存cookie的问题

    目录

    ie11

    解决方案

    ie11

    在ie11下,访问服务器上的网站地址,莫名其妙的多出一串东西,这一串字符串是由于客户端禁用cookie造成sessionid无法写入cookie,所以就拼在url上面了:

    http://192.168.80.90:8003/(F(f7MHPrEbtCN867LFxf9VSLQnzHRsU41jVEYkBT6WTAbyiBlFGeJrLDnvj7cI4M8fEUPPwoqLANdfLxb7ydCt6vOPDxh9rP2ssg9L7-xvSpaEV2pE6eIW9foWcMbw6MMQAcTU2ClXOHggMGGbhzv-MA2))/GroupZone/TopicManager.aspx?groupID=137197c1-c13d-4580-8a46-1535e639feaf

    如图所示:

    也可以看一下forms验证FormsAuthentication.SetAuth方法:

     1         //
     2         // 摘要:
     3         //     为提供的用户名创建一个身份验证票证,并将该票证添加到响应的 Cookie 集合中或 URL 中(如果使用的是无 Cookie 身份验证)。
     4         //
     5         // 参数:
     6         //   userName:
     7         //     已验证的用户的名称。这不必映射到 Windows 帐户。
     8         //
     9         //   createPersistentCookie:
    10         //     如果为 true,则创建持久 Cookie(跨浏览器会话保存的 Cookie);否则为 false。
    11         //
    12         // 异常:
    13         //   System.Web.HttpException:
    14         //     System.Web.Security.FormsAuthentication.RequireSSL 为 true 且 System.Web.HttpRequest.IsSecureConnection
    15         //     为 false。
    16         public static void SetAuthCookie(string userName, bool createPersistentCookie);

    正常应该是

    http://192.168.80.90:8003/GroupZone/TopicManager.aspx?groupID=137197c1-c13d-4580-8a46-1535e639feaf

    解决方案

    方案1:

    查找了网上的说法,说是客户端浏览器禁用cookie造成的,然后在web.config中添加cookieless=“UseCookies”

    1 <authentication mode="Forms" >
    2       <!--ie11 禁用cookie,解决方案-->
    3       <forms cookieless="UseCookies"  loginUrl="~/GroupZone/Login.aspx" timeout="1000"></forms>
    4 </authentication>

    修改后的浏览,如图所示:

    ie11配置:(为了不修改客户端浏览器的配置可以修改网站的web.config)

    方案2:

    虽然上面的解决方案解决了的问题,但是页面的样式还是错乱的,导致页面上的一些服务器控件无法使用。在服务器.net framework的版本为4.0,将版本升级到4.5,重启电脑解决问题,配置文件中也不需要修改了,样式也正常了。

     总结

    这个问题折磨我两天了,今天终于解决了,各种办法都尝试了,最后没办法了,将服务器中.net framework给升级了。反而问题解决了,无语了。

  • 相关阅读:
    Windows Server 设置自动登陆
    Kettle学习笔记(四)— 总结
    Kettle学习笔记(一)— 环境部署及运行
    Web项目自动打开并且全屏
    数据库SQL Server 2016“功能选择”详细说明及精简安装选择
    kettle学习笔记(三)— 定时任务的脚本执行
    Kettle学习笔记(二)— 基本操作
    effective C++ 条款 54:让自己熟悉包括TR1在内的标准程序库
    [转]基于MFC的ActiveX控件开发
    effective C++ 条款 50:了解new和delete的合理替换时机
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/3906781.html
Copyright © 2011-2022 走看看