我在客户的内部网络上新建了一个网站。我只能通过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/
)
知道如何解决(或不是)发生的事情吗?
答案 0 :(得分:0)
嗯,事实证明它与所使用的URL有关(应该早点检查一下,而不是仅仅指出我的问题中的URL很奇怪)。
显然,如果主机名中有下划线_
,IE将不会存储Cookie。这可以通过修改您的"主机"来验证。文件:
在最后添加此行并保存文件:
127.0.0.1 test_site
在浏览器中输入网址http://test_site(假设您的网络服务器侦听127.0.0.1)
我目前唯一的解决方法是使用另一个不包含下划线的主机名,例如test-site
。