【发布时间】:2019-10-29 04:31:35
【问题描述】:
我在 windows 上通过 IIS 运行 PHP,并使用集成身份验证来使用域用户。
以下代码在 IE 11、Chrome 和 Firefox 中访问页面时有效。
$dir = dirname(__FILE__);
$dir = realpath($dir.'/../storage/logs');
$filename = $dir.DIRECTORY_SEPARATOR.'my-log.log';
file_put_contents($filename, 'hello world');
在 MS Edge 中访问时
PHP Warning: file_put_contents(C:\websites\my-site\api\storage\logs\my-log.log):
failed to open stream: Permission denied in
C:\websites\my-site\api\public\permissions.php on line 11
(在基于 Chromium 的 Edge-Dev 中有效,只是在传统 / EdgeHTML 版本中存在问题。)
如果我关闭 Windows 身份验证,该代码也可以在 Edge 中运行。我知道我输入的密码正确,因为如果我不正确输入,我会从 IIS 收到 401 未经授权的消息。
这个问题不仅仅是我的电脑;它在我们尝试过的所有 4 台笔记本电脑上都失败了。但似乎不影响服务器,只影响桌面 Windows。
更新
根据 Deepak-MSFT 的建议,我将我的计算机名称添加到了 Intranet,但它并没有改变任何东西。这个名字就像 laptop-4.example.com 我添加了它,有没有 http 和 *.example.com 已经在受信任的站点中,将其保留或删除似乎没有任何改变。
【问题讨论】:
-
出于测试目的,您能否尝试从 Internet 选项中将该特定站点添加到 Intranet 站点区域列表中,然后再次尝试进行相同的测试?让我们知道您的测试结果。如果需要,我们会尽力提供进一步的建议。
-
感谢@Deepak-MSFT - 我试过了并更新了问题。似乎没有帮助:(
-
请尝试将站点保留在内网站点区域列表中,并将其从受信任站点列表中删除并进行测试。
-
我已从受信任的站点中删除了通配符,但那里没有该站点。同样的问题
-
我想和你确认一下,你的内网设置是中低级吗?如果不尝试将其设置为中低级别。此外,如果可能的话,尝试发布设置快照可能会给我们更好的主意。
标签: php iis microsoft-edge windows-authentication