我已收到通知,我们的某个依赖会话状态的Web应用程序的功能无效。当我在自己的计算机上使用相同的步骤尝试使用Firefox和IE 11时,它对我有用。所以我将调试器附加到asp.net服务器进程并让用户遇到问题再试一次。我发现第一页成功地将对象添加到Session状态,然后重定向到另一个页面。在下一页的page_load中,对象消失了,它有一个新的会话ID。此站点在SharePoint 2007中运行并使用SQL会话。用户在Windows 8 Surface或桌面上使用IE 11时只会遇到此问题。即使这样,如果他使用表单身份验证登录然后重复上述步骤,它也会成功。他也没有使用Firefox或Chrome在Windows 8中遇到此问题。我尝试安装this hotfix思考可能是找不到用户代理字符串但是它不起作用。所以关于Windows 8 / IE 11组合的东西似乎是罪魁祸首。有什么想法吗?
更新:
我还更新了它以使用Response.Redirect(页面, false )来尝试确保在没有设置cookie的情况下没有结束响应,但它没有解决它。我之前不知道的一个显而易见的重要细节是它还从http重定向到https。使用Fiddler我发现在Windows 8计算机上,它不会在https请求期间发回从http响应中收到的会话cookie,因此会发出新的会话cookie。 IE不会在http和https之间共享会话cookie。这种情况很有意义,因为启动SSL时您的http cookie可能已经被泄露。但为什么仅在Win 8上的IE中发生?
根据this page,授予的是旧的&过时的会话cookie至少用于在http和https之间自由移动:
如果您的网站有安全区域和公共访问区域,则必须 使用SSL保护安全的身份验证区域。当用户移动时 在安全区域和公共区域之间来回,ASP.NET生成 会话cookie(如果您启用了无cookie会话状态,则为URL) 与他们一起以明文移动......