IIS7 доступ к сетевому ресурсу

Я запускаю IIS 7 на Windows Server 2008 R2 с PHP 5.4. Один из моих PHP скриптов пытается получить доступ к файлу на защищенном сетевом ресурсе, используя UNC-путь. Как изменить учетную запись службы IIS на учетную запись, имеющую разрешение на доступ к общей папке? Это очень легко сделать на Apache HTTP server (вы просто измените его), но неясно, как это сделать с IIS. Что я могу сделать?

обновление:

Я смог заставить вещи работать, используя "Подключиться как" в разделе "Основные настройки" моего веб-сайта, а затем указать учетную запись, которая имеет доступ к сетевому ресурсу. Это появляется что моя проблема связана с этим вопрос:

https://serverfault.com/questions/366234/iis-identities-application-pool-vs-connect-as-in-basic-settings

3 ответов


для IIS 7, работающего в Windows Server 2008 R2 ... В IIS Manager выберите Application Pool под которым работает ваш веб-сайт.

Нажмите "Дополнительные Настройки". Там будет запись для Identity (Она находится под ). Щелкните его, укажите учетные данные для учетной записи, которая имеет разрешение на доступ к общей папке.

обновление

вы должны убедиться, что при использовании учетной записи домена Active Directory вы предоставили что правильно под Identity для запуска пула приложений. Например, MYDOMAIN\myAccount.

после внесения этого изменения вам нужно будет сделать следующее:

  1. остановите веб-сайт.
  2. утилизация пула приложений.
  3. запустите веб-сайт.

ОБНОВЛЕНИЕ II

из обсуждения комментариев по этому ответу @HydroPowerDeveloper смог получить PHP-скрипт для доступа к сетевой ресурс через UNC-путь с помощью веб-сайта - > основные настройки - > "подключиться как" и установить учетные данные там.

в прошлом я всегда использовал подход настройки Identity via Application Pool и это позволило моему коду получить доступ к сетевым ресурсам через UNC-путь.

однако все сайты / приложения, которые я развернул на IIS являются .NET на основе WCF или ASPX сайтов.

Я бы предположил (но не уверен на 100% в этом, потребуется исследование / тестирование чтобы подтвердить) , что Identity определенного Application Pool используется при выполнении кода .NET, тогда как" Connect As " используется PHP-скриптом.


обычно пул приложений устанавливается с использованием наименьшего количества привилегий, насколько это возможно.

http://msdn.microsoft.com/en-us/library/ff647402.aspx

самый простой маршрут-разрешить доступ к текущей учетной записи IIS.

в Проводнике, перейдите в общий каталог.

Щелкните Правой Кнопкой Мыши - > Свойства - > Безопасность

Если вы не видите ожидаемого пользователя IIS в списке (имена групп или пользователей), измените и добавьте пользователя как требовалось.

Я использовал "сетевой сервис" - > проверить имена.

подробные инструкции находятся на этом сайте.

таким образом, система по-прежнему ограничена, мы разрешаем доступ только к определенным каталогам, нам не нужно создавать новых пользователей, нам не нужно повторно использовать пул приложений, и нам не нужно выполнять какой-либо отличный код олицетворения.


чтобы воскресить старый вопрос...

Я только что настраивал сервер Win 2016, который использует некоторый Perl для доступа к общей папке UNC. Я установил пул приложений для учетной записи, которая, как я проверил, имела правильные разрешения на этот ресурс. Затем я настроил свой сайт на "Connect as"...(в разделе "Основные настройки") тот же пользователь. Я все еще не мог получить доступ к работе.

много царапин головы позже, я понял, что мой "виртуальный каталог", cgi-bin, работает под оригинальным " пропуском через учетную запись. Затем я настроил виртуальный каталог на " Connect as...- та же учетная запись, что и сайт, и пул приложений, и, бинго, все работает отлично.

итак, не забудьте обновить все виртуальные каталоги, а также пул сайтов и приложений...