У меня есть приложение asp.net, которое использует Request.LogonUserIdentity.Name
заполняется именем пользователя, выполнившего вход на клиентский компьютер. В IIS7 на веб-сервере я отключил Anonymous Authentication
и включен ASP.NET Impersonation
& Windows Authentication
. (Я вхожу на веб-сервер с учетной записью службы, а не со своей собственной.) Когда я пытаюсь перейти на сайт со своего рабочего стола, мне предлагается ввести свои сетевые учетные данные, которые не работают - 401 Unauthorized...
. Я использую .Net 3.5 sp. Как бы то ни было. На сервере работает IIS 7.5.
Я пробовал добавить Machine\Everyon
е и Domain\Domain Users
с чтением, а также с полным доступом, и меня все еще блокируют.
Скорее всего, это связано с проверкой обратной связи при локальном тестировании на сервере. Готов поспорить, он работает, если вы протестируете его с другого сервера.
Отключите проверку обратной связи с помощью метода 2 на этой странице: http://support.microsoft.com/kb/896861. Перезагрузка не требуется для вашего изменения.
Что касается разрешений, при включенном олицетворении потребуется аутентифицированный пользователь, плюс пользователю пула приложений потребуются некоторые вещи. Итак, ключевые разрешения для использования - это СИСТЕМА, Администраторы, «IIS APPPOOL \ {apppoolname}» и группа для возможных пользователей, которые будут аутентифицироваться.
В IIS 7.5 при включении проверки подлинности Windows также есть возможность для поставщиков. По умолчанию сначала выбирается Negotiate, а затем NTLM. Я видел проблемы, при которых переговоры не удавались из-за других проблем, связанных с настройкой, а затем представляли пользователю проблему с учетными данными. Мне удалось обойти это, сделав NTLM первым провайдером.
Вы также можете просматривать посещаемость сайта с помощью Fiddler, чтобы узнать, что происходит, когда вам бросают вызов учетные данные.