我目前在本地 Windows 机器上使用 Apache 2.4 测试 NTLM 身份验证。一切正常。如果我打开一个演示网站 http://localhost/authfoo/text.php
,该网站将在每个浏览器中加载时没有身份验证对话框。 test.php
脚本自动从当前 windows 用户获取所有必需的身份验证数据。
到目前为止一切顺利。已使用 Internet Explorer 11、Chrome、Firefox 进行测试,并且可以正常工作。只有 Microsoft Edge 打开身份验证对话框,我必须输入凭据。我在这个对话框窗口中看到的只是标题显示我的计算机名而不是 localhost
。这表明 Edge 使用计算机名作为内部域,并且肯定没有 intranet
域,如 localhost
是。
Edge 有一个叫做 LoopbackExempt
的东西。有了它,您可以允许 localhost
作为 intranet
站点进行线程化。这个设置也没有帮助我。 https://developer.microsoft.com/en-us/microsoft-edge/platform/faq/#how-can-i-debug-localhost
但是,当我通过 Edge 中的设置将 http://15031489-nb.cstp.intern/
手动添加到 Intranet 站点时,当我使用 http://15031489 时它会起作用-nb.cstp.intern/authfoo/text.php
没有身份验证对话框。但是 http://localhost/authfoo/text.php
仍然显示身份验证对话框。
顺便说一句,http://localhost
也被添加到 Intranet 站点,只是为了确保所有内容都将被视为实际的 Intranet 站点
。
所以,我不知道如何让这个东西在 Edge 中也能正常工作,就像所有其他浏览器已经在做的那样,甚至 IE 11 也能毫无缺陷地工作。
最佳答案
我一直在搜索这个问题,并从微软开发者社区找到了这个答案:
Microsoft Edge doesn't allow integrated Windows Auth over loopback as a security mitigation to prevent breaking the browser sandbox. The only workaround offered by the team is to use the FQDN while debugging.
( Source )
因此您必须使用 FQDN 而不是 http://localhost/
,它是 http://15031489-nb.cstp.intern/
案件。我不相信微软会在 Edge 中解决这个问题,因为这是预期的行为。
关于apache - Microsoft Edge localhost apache NTLM 始终尝试针对计算机名而不是本地主机进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49174488/
相关文章:
git - 致命的 : protocol error: bad line length charac
csv - 如何从已上传到我们的 Google 云端硬盘的 CSV 自动导入和替换 Google 表
python - 如何在 Linux 上的 Python 中检查文件锁?
iis - 如何在IIS服务器上阻止通过服务器IP地址访问网站?
spring-security - Spring Security OAuth2 资源服务器重试/弹
javascript - 如何让 chrome.webRequest 等待 XMLHttpReque
python - 如何使用pymongo在mongodb中创建索引