IE11不发送会话cookie

时间:2017-08-01 15:42:26

标签: asp.net-mvc cookies internet-explorer-11 saml-2.0

我在客户的内部网络上新建了一个网站。我只能通过Windows Server 2012上的远程桌面对其进行测试。

网站执行SAML身份验证:浏览器首先从网站接收会话cookie,然后重定向到SAML身份提供程序,并返回到具有SAML响应的网站,在该网站上它还会发送回会话cookie。这适用于Chrome,但出于某种原因,IE11不会发回会话cookie,这会阻止服务器接受SAML身份验证。

我不知道为什么IE11无法发送会话cookie。我在调试工具中检查了网络窗格,我确实得到了cookie(虽然我无法确认IE实际存储它):

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

然后我被重定向到身份提供商,但是当回到网站时,它不会发送cookie。该cookie仅限HTTP,因此无论是否存储,我都无法在控制台中进行检查。我已经使用发布here的说明来查看存储的Cookie,我无法在任何时间看到我网站的Cookie(虽然重定向很快发生,因此可能会添加然后删除有机会看到它。)

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

如果它很重要,网站网址没有点(它是https://mmr-pp_sef/

知道如何解决(或不是)发生的事情吗?

1 个答案:

答案 0 :(得分:0)

嗯,事实证明它与所使用的URL有关(应该早点检查一下,而不是仅仅指出我的问题中的URL很奇怪)。

显然,如果主机名中有下划线_,IE将不会存储Cookie。这可以通过修改您的"主机"来验证。文件:

  1. 打开文件C:\ Windows \ System32 \ drivers \ etc \ hosts(您需要管理员权限)
  2. 在最后添加此行并保存文件:

    127.0.0.1 test_site
    
  3. 在浏览器中输入网址http://test_site(假设您的网络服务器侦听127.0.0.1)

  4. 注意IE不会存储任何cookie。
  5. 我目前唯一的解决方法是使用另一个不包含下划线的主机名,例如test-site