401.1 Ошибка при доступе к виртуальному каталогу, указывающему на общий сетевой ресурс

IIS5 работает на SERVER1.

Один из виртуальных каталогов в IIS, myfiles, указывает на «общее расположение на другом компьютере», // SERVER2 / myfilesshare

Когда я пытаюсь получить доступ к странице: http://SERVER1/myfiles

... я получаю сообщение об ошибке:

У вас нет прав для просмотра этой страницы

HTTP 401.1 - Неавторизовано: не удалось войти в систему

Информационные службы Интернета

Я трижды проверил настройки «Подключиться как ...» в IIS. Учетные данные, которые я использую для доступа к общему ресурсу, верны - они работают при подключении к общему ресурсу в проводнике Windows, но не через виртуальный каталог IIS. Я попытался предоставить полное разрешение всем в папке на сервере SERVER2, но безуспешно.

Есть предположения?


person frankadelic    schedule 06.03.2009    source источник
comment
В конце концов, повезет? Прямо сейчас я сталкиваюсь с той же проблемой.   -  person abatishchev    schedule 06.11.2014


Ответы (4)


Вот как я решил свою проблему, может вам помочь.

По умолчанию IIS использует локального пользователя с именем IUSR для виртуальных каталогов при анонимной проверке подлинности. Он не использует идентификационные данные приложения, что должно быть очевидно, если вы используете procmon.

Как вы можете заставить его использовать идентификацию приложения?

Легко, под менеджером IIS:

1) заходим в Authentication

2) Редактировать "Анонимная аутентификация"

3) Выберите «Удостоверение пула приложений».

4) Перезагрузите IIS, и он должен работать.

То же самое с PS: Set-WebConfigurationProperty -filter /system.WebServer/security/authentication/AnonymousAuthentication -name username -value ""

Эта ссылка содержит плюсы и минусы: http://blogs.technet.com/b/tristank/archive/2011/12/22/iusr-vs-application-pool-identity-why-use-either.aspx

person Erti-Chris Eelmaa    schedule 21.04.2015

Проблемы с разрешениями могут быть сложными. Попробуйте запустить filemon на "другом компьютере". Его можно скачать здесь: http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx (это небольшое приложение, просто крошечный легкий инструмент)

После того, как вы запустили filemon, остановите процесс монитора (я считаю, что он включен по умолчанию при запуске приложения), очистите зарегистрированные данные, создайте фильтр для папки, к которой у вас проблемы с доступом. Запустите процесс монитора. Запросите вашу веб-страницу. Остановите процесс монитора и поищите в filemon сообщения об отказе в доступе. При обнаружении filemon также упомянет имя фактического пользователя, который пытается получить доступ. Это может помочь вам найти решение.

Кстати, при использовании Windows Server 2008 вам понадобится processmon вместо этого: http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

person Roel Snetselaar    schedule 06.03.2009
comment
По какой-то причине filemon не показывает ничего, имеющего отношение к этому файлу на общей машине. Средство просмотра событий показало, что ASPNET не имеет разрешений для файла web.config в общей сетевой папке. Как я могу предоставить локальному пользователю ASPNET на server1 доступ к server2? - person frankadelic; 06.03.2009
comment
Что ж, можете ли вы также создать учетную запись ASPNET на этом сервере и назначить соответствующие разрешения? Также вы можете попробовать запустить приложение ASP.NET под учетной записью домена. - person Lex Li; 07.03.2009

Представьте себе сценарий, в котором по какой-либо причине вы хотите, чтобы ваш сервер IIS имел доступ к общему ресурсу на файловом сервере, а они не находятся в одном домене.

Если вы можете следить и заставить это работать на вас (я сделал это для 32-разрядного файлового сервера Win2008-R1 и 64-разрядного Win2008-R2 с IIS 7), тогда вы должны быть в хорошей форме для любого сценария.

  • Локальная учетная запись с одинаковым именем на обоих серверах с одинаковым паролем
  • В IIS используйте aspnet_regiis -ga MyAccount, чтобы предоставить локальной учетной записи доступ к внутренностям IIS.
  • Теперь используйте это как идентификатор пула приложений веб-сайта.
  • Использование локальной политики безопасности (инструменты администратора) включает доверие для делегирования локальной учетной записи
  • Перезагрузите сервер IIS
  • На файловом сервере используйте локальную политику безопасности, чтобы разрешить доступ из сети для локальной учетной записи.
  • Создайте общий ресурс, предоставляющий необходимые разрешения для локальной учетной записи (также при необходимости, разрешения на вкладке «Безопасность»)
  • Откройте порты общего доступа к файлам и принтерам на обоих (как можно более ограниченные), чтобы указать, где это работает для вас, когда вы используете Проводник Windows между двумя
  • Вернитесь в IIS, создайте виртуальный каталог, используя UNC-путь к общей папке с файлового сервера.
  • Просто используйте сквозную аутентификацию (которая будет использовать вашу локальную учетную запись)
  • Вы также можете указать параметру анонимной аутентификации виртуального каталога использовать удостоверение пула приложений.

Используйте что-нибудь, что будет проверять / проверять. Ключ на самом деле - это доверие для делегирования с использованием Service Account (домена или иначе) и использование IIS учетной записи, которую вы хотите использовать, вместо локального сервера или сетевой службы.

На это у меня ушел целый день. Различные темы в StackOverflow и других источниках в Интернете помогли мне указать на различные ресурсы, но я нигде не нашел своего точного ответа. Надеюсь, что следующий человек, столкнувшийся с этой проблемой, получит прирост скорости на пути к решению с моим описанием того, что сработало для меня.

person cusman    schedule 22.10.2012

попробуйте включить проверку подлинности Windows на вкладке безопасности виртуального каталога (в IIS).

person Dror    schedule 06.03.2009
comment
Это вызывает всплывающее окно с запросом имени пользователя и пароля, когда я захожу на сайт. Однако, даже если я затем введу правильные учетные данные, это не сработает. Обратите внимание, что эти два сервера не являются частью одного домена. - person frankadelic; 06.03.2009