Я использую PHP через IIS для Windows и использую встроенную аутентификацию для пользователей домена.
Следующий код работает при доступе к странице в 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
(работает в Edge-Dev на основе Chromium, это проблема только в традиционной версии / EdgeHTML, в которой есть проблема.)
Код работает и в Edge, если я отключаю аутентификацию Windows. Я знаю, что правильно набираю свой пароль, потому что в противном случае я получаю несанкционированное сообщение 401 от IIS.
Эта проблема не только моего компьютера; он провалился на всех 4 ноутбуках, на которых мы его пробовали. Но, похоже, не влияет на серверы, только на рабочий стол Windows.
Обновление
В соответствии с предложением Deepak-MSFT я добавил имя моего компьютера во внутреннюю сеть, но это ничего не изменило. Название похоже на laptop-4.example.com
Я добавил его как с http-адресом, так и без него, а *.example.com
уже был на доверенных сайтах, оставляя его или удаляя его, похоже, ничего не изменилось.