Ответ 1
Я написал небольшое приложение для отображения текущего имени пользователя в сети, полученного из нескольких разных мест, таких как Page.User.Identity.Name
. Я также собрал информацию о пользователе домена, используя несколько разных методов для запросов к Active Directory. Все это подтверждает следующее.
Я обнаружил два основных режима для запуска вашего приложения с использованием аутентификации Windows, которая, в соответствии с моими исследованиями, в основном используется в среде интрасети. Вот минимально необходимые элементы конфигурации:
Классический режим
- AppPool - управляемый конвейер установлен в классический режим.
- AppPool - для удостоверения установлено сетевое обслуживание.
- Аутентификация - отключена: анонимная аутентификация
- Аутентификация - включена: олицетворение ASP.NET
- Аутентификация - включена: аутентификация Windows
- Поставщики - отключено: Kerberos
- Дополнительные настройки - режим ядра: либо
Интегрированный режим
- AppPool - управляемый конвейер установлен в интегрированный режим.
- AppPool - для удостоверения установлено сетевое обслуживание.
- Аутентификация - отключена: анонимная аутентификация
- Аутентификация - отключена: олицетворение ASP.NET
- Аутентификация - включена: аутентификация Windows
- Поставщики - включены: Kerberos
- Расширенные настройки - режим ядра: отключено
Теперь здесь кикер !!
Если вы хотите использовать Интегрированный режим (который идеален, так как дает гораздо больше функциональности и, конечно же, интеграцию), вам необходимо включить делегирование. Вот пара статей, которые необходимо прочитать, чтобы понять основы Делегирования и, в свою очередь, Динамическая регистрация SPN. Поскольку это затрагивает больше аспектов Kerberos и безопасности, которые вы, вероятно, захотите вникнуть, может быть проще просто придерживаться классического режима, где все, что вам нужно сделать, это включить Impersonation и вызвать его на день; или же обмануть и отключить validateIntegratedModeConfiguration
.