Подтвердить что ты не робот

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

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

Update:

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

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

4b9b3361

Ответ 1

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

Нажмите "Дополнительные настройки". Будет запись для Identity (она находится в разделе Process Model). Нажмите на нее, введите учетные данные для своей учетной записи, у которой есть разрешение на доступ к ресурсу.

UPDATE

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

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

  • Остановить веб-сайт.
  • Переустановите пул приложений.
  • Запустите веб-сайт.

ОБНОВЛЕНИЕ II

Из обсуждения комментариев на этом ответе @HydroPowerDeveloper смог получить PHP script, чтобы иметь возможность доступа к сетевому ресурсу через UNC-путь, используя WebSite → Основные настройки → "Подключить как" и установить учетные данные там,

В прошлом я всегда использовал подход Identity с помощью Application Pool, и это позволило моему коду получить доступ к общим ресурсам сети по пути UNC.

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

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

Ответ 2

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

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

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

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

Щелкните правой кнопкой мыши → Свойства → Безопасность

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

Я использовал "NETWORK SERVICE" → Проверить имена.

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

Таким образом, система все еще ограничена, мы ТОЛЬКО предоставляем доступ к конкретным каталогам, нам не нужно создавать новых пользователей, нам не нужно перерабатывать пул приложений, и нам не нужно для выполнения любого отличного кода олицетворения.