IIS7 + олицетворение ASP.NET + Windows Auth = 401 не авторизован
У меня есть приложение asp.net, которое опирается на Request.LogonUserIdentity.Name
быть заполненным именем пользователя, вошедшего на клиентский компьютер. В IIS7 на веб-сервере я отключил Anonymous Authentication
и включен ASP.NET Impersonation
& Windows Authentication
, (Я вхожу на веб-сервер с учетной записью службы, а не со своей.) Когда я пытаюсь перейти на сайт со своего рабочего стола, меня просят указать сетевые учетные данные, которые не срабатывают - 401 Unauthorized...
, Я пользуюсь.Net 3.5 sp. Сервер работает под управлением IIS 7.5.
Пул приложений:
- Режим управляемого трубопровода: Классический
- Загрузить профиль пользователя: false
- Идентичность: ApplicationPoolIdentity
Веб приложение:
- .NET Auth Rules: разрешить всем пользователям
- Включенные типы аутентификации: олицетворение ASP.NET, Windows
Разрешения для файловой системы:
- Создатель-владелец: специальные разрешения
- Machine\IUsr: чтение и выполнение, список содержимого папки, чтение
- Машина \ Система: Полный контроль
- Моя учетная запись домена: полный контроль
- Машина \ Администраторы: Полный контроль
- Машина \ Пользователи: чтение и выполнение, список содержимого папки, чтение
- Machine\IIS_IUSRS: чтение и выполнение, просмотр содержимого папки, чтение
- Доверенный установщик: полный контроль
Я пытался добавить Machine\Everyon
е и Domain\Domain Users
с Read, а также с Full Control, и я все еще блокируюсь.
2 ответа
Это наиболее вероятно из-за loopbackcheck при локальном тестировании на сервере. Бьюсь об заклад, это работает, если вы проверите это с другого сервера.
Отключите проверку обратной связи, используя метод 2 на этой странице: http://support.microsoft.com/kb/896861. Перезагрузка не требуется для вашего изменения.
Что касается разрешений, то с включенным олицетворением потребуется аутентифицированный пользователь, плюс пользователю пула приложений потребуются некоторые вещи. Итак, ключевые разрешения для использования: SYSTEM, Администраторы, "IIS APPPOOL\{apppoolname}" и группа возможных пользователей, которые будут проходить аутентификацию.
В IIS 7.5 при включении проверки подлинности Windows также есть опция для поставщиков. По умолчанию Negotiate является первым предпочтением, а затем NTLM. Я видел проблемы, из-за которых согласование не удается из-за других проблем, связанных с настройкой, а затем представляет пользователю проблему с полномочиями. Я смог обойти это, сделав NTLM первым провайдером.
Вы также можете просматривать трафик на сайте с помощью Fiddler, чтобы увидеть, что происходит, когда вас оспаривают полномочия.