
Клянусь, я создал вопрос по этому поводу несколько недель назад, но, возможно, я его удалил, так как не могу его нигде найти.
- ASP.NET 4.0
- IIS6
- Windows Server 2003
- Интранет-сайт, использующий аутентификацию Windows
- Три сервера с одинаковой версией ОС и IIS, на каждом из которых размещены версии для разработки, производства и восстановления после сбоев (DR) одного и того же веб-сайта.
Теперь рассмотрим следующий порядок событий:
- Пользователь начинает с IE8 и любых версий FF и Chrome
- Пользователь может получить доступ только к сайту DR. Запрос на вход отказывается аутентифицировать их с их учетными данными Windows для других сайтов, поэтому они не могут войти
- Они устанавливают свежую копию Windows 7 и обновляются до IE9. Теперь они могут получить доступ к сайтам dev и DR в IE9. Они могут получить доступ ко всем трем сайтам в Chrome.
Я проверил следующее в настройках интернета:
- Автоматический вход в систему с текущим именем пользователя и паролем
- Включить интегрированную проверку подлинности Windows
Я наткнулся на это в MSKB: http://support.microsoft.com/kb/215383
Свойство метабазы NTAuthenticationProviders не определено, поэтому IIS должен использовать его Negotiate,NTLM
по умолчанию.
Другие детали:
- Это началось всего несколько недель назад. Пользователь мог нормально зайти на наш сайт с IE8.
- Ни у кого из других пользователей такой проблемы не возникает.
Кто-нибудь знает, что может быть причиной того, что его браузер не отправляет информацию аутентификации на сервер? Вот скриншот окна аутентификации, которое видит пользователь:
Дополнительные детали
Вот что показывает просмотрщик событий безопасности для этого пользователя. Я скрыл конфиденциальную информацию с помощью ?
.
Тип события: Аудит успеха Источник события: Безопасность Категория события: Вход/выход Идентификатор события: 538 Дата: 14.07.2014 Время: 1:27:37 PM Пользователь: ?\? Компьютер: ? Описание: Выход пользователя из системы: Имя пользователя: ? Домен: ? Идентификатор входа: (0x0,0x3F99497F) Тип входа: 3 Тип события: Аудит успеха Источник события: Безопасность Категория события: Вход/выход Идентификатор события: 540 Дата: 14.07.2014 Время: 1:27:14 PM Пользователь: ?\? Компьютер: ? Описание: Успешный вход в сеть: Имя пользователя: ? Домен: ? Идентификатор входа: (0x0,0x3F997233) Тип входа: 3 Процесс входа: NtLmSsp Пакет аутентификации: NTLM Имя рабочей станции: ? GUID входа: - Имя пользователя звонящего: - Домен вызывающего абонента: - Идентификатор входа вызывающего абонента: - Идентификатор процесса вызывающего абонента: - Транзитные услуги: - Исходный сетевой адрес: ? Исходный порт: 16220
решение1
Включение автоматической идентификации NTLM осуществляется следующим образом.
Интернет Эксплорер
- В IE откройте настройки Интернета через «IE -> Сервис -> Свойства обозревателя» или через Панель управления -> Свойства обозревателя.
- Перейдите на вкладку «Безопасность».
- Нажмите Сайты
- Нажмите «Местная интрасеть» или «Надежные сайты».
- Добавьте свои сайты в список
- При необходимости снимите флажок «Требовать проверку сервера (https:) для всех сайтов в этой зоне».
- Нажмите Закрыть.
- Нажмите Пользовательский уровень.
- Прокрутите вправо до конца в разделе «Аутентификация пользователя» / «Вход в систему» и убедитесь, что установлен флажок «Автоматический вход с текущим именем пользователя и паролем».
- Нажмите ОК.
Гугл Хром
Google Chrome на самом деле использует те же настройки, что и IE, то есть указанные выше настройки Панель управления -> Свойства обозревателя, так что больше ничего делать не нужно.
Fire Fox
- Откройте Firefox и введите в адресной строке «about:config» (без кавычек).
- В поле «Фильтр» введите
network.automatic-ntlm-auth.trusted-uris
- Дважды щелкните по указанному выше и введите URL-адреса сайтов или целых доменов, разделенные запятыми.
- если ваши сайты не используют полное доменное имя (например,
http://intranet
вместоhttp://intranet.domain.com
), сделайте также:- Установить
network.automatic-ntlm-auth.allow-non-fqdn
значение true - Установить
network.negotiate-auth.allow-non-fqdn
значение true
- Установить