Получение приглашения войти с помощью встроенной проверки подлинности Windows - PullRequest
101 голосов
/ 23 марта 2011

У меня есть приложение .NET 3.5, работающее под IIS 7 на сервере Windows 2003, и я не могу работать с интегрированной аутентификацией Windows, так как я продолжаю получать запрос на вход в систему. Я установил включенную проверку подлинности Windows в IIS со всеми другими типами безопасности, а проверка подлинности / авторизация файла моего приложения web.config настроена как:

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="3.5" />
    <authenticationmode="Windows"/>
    <authorization>
    <deny users = "?" />
    </authorization>
</system.web>

С этой настройкой я ожидаю за сценой проверки пользователя Windows, чтобы разрешить доступ и запретить анонимным пользователям. Тем не менее, я получаю всплывающее окно входа в Windows, когда я пытаюсь зайти на сайт.

Я устранял эту проблему в течение нескольких дней и не могу выяснить проблему. Основываясь на сообщениях со схожими проблемами, я подтвердил, что мой URL-адрес не содержит периодов, дважды проверил, что в моих настройках IE установлено значение «Включить встроенную проверку подлинности Windows», а также добавил свой URL-адрес на свои сайты в интрасети, но все еще получаю всплывающее окно.

Для дальнейшего устранения неполадок я включил анонимную аутентификацию в IIS и изменил свой файл web.config, к которому я могу подключиться, а затем добавил Response.Write (System.Security.Principal.WindowsIdentifity.getcurrent (). User.name. toString ()), чтобы попытаться увидеть, какой пользователь используется в аутентификации. В результате я получаю IIS APPPOOL \ myapp, который, очевидно, является пулом приложений IIS для моего приложения.

Я очень признателен за любую помощь, которую кто-либо может предоставить, так что я все еще использую только аутентификацию Windows, но не получаю всплывающее окно, и аутентификация Windows выполняется против фактического пользователя Windows.

Спасибо.


Дополнительные примечания после устранения неполадок:

Только что заметил, что при сбое входа в систему и появлении приглашения на вход в Windows снова отображается имя пользователя, которое попыталось войти в систему под именем «SERVERNAME» \ «USERNAME», что заставило меня поверить, что он пытался проверить пользователя на сервере против домена. Чтобы подтвердить это, я создал учетную запись локального пользователя непосредственно на сервере приложений с тем же именем пользователя и паролем, что и у пользователя сетевого домена, и попытался снова войти в систему. В результате я снова получил приглашение войти в систему, но когда на этот раз я ввел имя пользователя и пароль, я смог успешно войти в систему. Пользователь сети и сервер приложений находятся в одном домене, поэтому на самом деле не уверены, почему проверка подлинности IIS указывает на локальные учетные записи сервера приложений, а не на учетные записи домена. Я понимаю, что на данный момент это вопрос IIS, поэтому я также размещаю сообщения на forums.iis.net, но я ценю любые советы, которые кто-либо может получить с тех пор, как устранял это в течение нескольких дней.

Ответы [ 21 ]

0 голосов
/ 14 ноября 2013

Проверка подлинности Windows в IIS7.0 или IIS7.5 не работает с Kerberos (поставщик = переговоры) когда идентификатором пула приложений является ApplicationPoolIdentity Нужно использовать сетевой сервис или другую встроенную учетную запись. Еще одна возможность - использовать NTLM, чтобы заставить Windows Authenticatio работать (в Windows Authentication, Provider, поставить NTLM поверх или удалить согласование)

Крис ван де Вийвер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...