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, чтобы увидеть, что происходит, когда вас оспаривают полномочия.

Другие вопросы по тегам