Невозможно подключиться к сетевой папке
Я пытаюсь подключиться к общему сетевому ресурсу (с помощью UNC) из браузера, но не могу.
Если я запускаю свой скрипт из командной строки, все в порядке, и я могу получить доступ к общему ресурсу. Я также могу перейти к нему через проводник Windows, так что я не думаю, что что-то не так с моим кодом или разрешениями для моей учетной записи Windows.
Мой сценарий выглядит так:
$dir = '\\\\some\path';
if (is_dir($dir))
{
echo 'dir exists';
}
else
{
echo 'dir does not exist';
}
Я также пытался использоватьDirectoryIterator($dir)
, но это выдает эту ошибку исключения:PHP Warning: opendir(...): Access is denied. (code: 5)
Вот мои настройки:
- Windows Server 2008 R2
- IIS 7.5
- PHP 5.3.13
- Анонимная аутентификация отключена
- Аутентификация Windows включена
И у меня есть эти параметры конфигурации в моем php.ini:
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
Чтобы добавить к путанице, я смог подключиться через браузер в следующих сценариях:
1 - использованиеsystem("net use \"".$dir."\" ".$pass." /user:".$user." /persistent:no>nul 2>&1");
Но это требует жесткого кодирования пароля аутентификации пользователя Windows, чего я не могу сделать.
2 - Настройкаfastcgi.impersonate=0
Но это означает, что пользователь должен будет проходить аутентификацию каждый раз, когда он нажимает на скрипт, что недопустимо.
3 - Включение анонимной проверки подлинности, отключение проверки подлинности Windows, но мне нужно включить проверку подлинности Windows, чтобы узнать, кто получает доступ к сайту.
Я не знаю, имеет ли это какое-либо отношение к моей проблеме, но я получаю разные значения для$_SERVER['USERNAME']
при запуске моего скрипта из браузера и из командной строки.
Это проблема с разрешениями? Есть ли токен аутентификации, который не передается?
редактировать
К сожалению, в этом случае подключение общего ресурса к сетевому диску не вариант.