2017-08-01 104 views
2

我有一个网站新鲜部署在客户端的内部网络。我只能通过Windows Server 2012上的远程桌面进行测试。IE11不发送会话cookie

网站执行SAML身份验证:浏览器首先从网站接收会话cookie,然后重定向到SAML身份提供商,然后返回到网站与SAML响应一起发送会话cookie。这对于Chrome来说工作正常,但由于某些原因,IE11将不会发回会话cookie,从而阻止服务器接受SAML身份验证。

我不知道为什么IE11无法发送会话cookie。我已经在调试工具的网络窗格中选中,我得到的饼干(虽然我无法证实IE实际上是将它存储):

Set-Cookie ASP.NET_SessionId=yzk4rdznlg534so2xuxqmuv4; path=/; HttpOnly

那么我重定向到身份提供者,但当回到网站时,它不会发送cookie。该cookie只有HTTP,因此如果控制台存储与否,则无法检入控制台。我已使用发布的here发布的说明查看存储的Cookie,并且我无法随时在我的网站上看到Cookie(尽管重定向发生得很快,因此可能会在我有机会看到它之前添加并删除它) 。

我也相信我已经探索过所有可能的安全和隐私设置,以允许一切,无济于事。

在情况下,它是很重要的,该网站网址有没有点(这是https://mmr-pp_sef/

任何想法,我怎么能解决什么(或者没有)发生?

+0

您处于IE11的兼容模式吗? –

+0

我对此没有做任何事情,但我怎么能证实我不是? – youen

+0

这种情况发生在iFrame中的可能性有多大? IE默认不喜欢第三方cookie。 – vap78

回答

0

那么,事实证明,它与所使用的URL有关(应该尽早检查我自己,而不是仅仅指出该URL在我的问题中很奇怪)。

显然,如果主机名中有下划线_,IE将不会存储cookie。

  1. 打开文件C:这可以通过修改你的 “hosts” 文件进行验证\ Windows \ System32下\ drivers \ etc下\主机(你需要管理员权限)
  2. 在添加此行结束并保存文件:

    127.0.0.1 test_site 
    
  3. 在浏览器中输入网址http://test_site(这里假设你的web服务器监听127.0.0.1)

  4. 观察到,IE不会存储任何cookie中。

我现在唯一的解决方法是使用另一个不包含下划线的主机名,如test-site

相关问题