Я использую следующий код C# в коде, расположенном за веб-формой, развернутой в пуле приложений ASP.NET 4 (4.0.30319) на Server1 и Server2.Защищенная аутентификация LDAP Проблема
PrincipalContext pc = new PrincipalContext(ContextType.Domain, "testnet.testad.org:636", "dc=testnet,dc=testad,dc=org");
bool validated = pc.ValidateCredentials(username, password, ContextOptions.Negotiate);
Сервер1 работает: Windows Server 2003 SP2
IIS 6.0
ASP.NET версии 4.0.30319
Это занимает от 30-60 секунд для проверки подлинности в зависимости от опций.
(Примечание: с помощью регулярных LDAP сразу проверяет подлинность без задержки)
Сервер 2 бежит: Windows Server 2008 SP2
IIS 7.0
версия ASP.NET 4.0.30319
Запуск таже как Server1, Server2 аутентифицируется почти мгновенно.
(Я также пробовал код с другим сервером IIS 7.0 с теми же результатами)
Кто-нибудь сталкивался с этим вопросом раньше?
Есть ли альтернативный способ аутентификации на сервере IIS 6.0 или сервере IIS 7.0?
Есть ли что-то, что мне нужно для настройки, добавления, удаления и т. Д.,?
Спасибо за любую помощь по этому вопросу.
.............................................. .................................................. ..............................................
[Обновить]
Я включил wirehark при выполнении запроса аутентификации ldaps.
Я создал файл, содержащий все запросы через 636.
Его можно посмотреть здесь: Server1 636 traffic
Самые большие зазоры находятся между:
No. 1949 на 1.115583 сек - № 06788 на 14.501754 сек
и
No. 6803 на 14.64297 сек - № 11742 на 27,921379 сек
Все другие движения на этом порту происходит в течение одной секунды.
ПРИМЕЧАНИЕ. На сервере Server примерно одинаковое количество трафика, но все это происходит между 2-3 секундами.
Его можно посмотреть здесь: Server2 636 traffic
Я побежал команду NetStat -ano»и обнаружил следующие соединения для LDAPS, когда я Логин:
Прото Локальный адрес Внешний адрес Состояние PID
TCP 10.1.72.74:1761 10.1.72.54:636 УСТАНАВЛИВАЕТСЯ 3688
TCP 10.1.72.74:1800 10.1.72.54:636 УСТАНАВЛИВАЕТСЯ 3688
TCP 10.1.72.74:1825 10.1.72.54: 636 ESTABLISHED 3688
Таким образом, используя порт 389, вызов auth происходит мгновенно - сертификаты, которые выдаются с обоих серверов при подключении более 636, являются теми же? Единственный раз, когда я заметил, что резкое замедление происходит, когда привязки рефералов не подавляются должным образом при авторизации. Не могли бы вы устранить попытку auth на Server1, чтобы узнать, где затишье в трафике? – X3074861X
@ X3074861X Да, используя порт 389, вызов auth происходит мгновенно. Я не уверен в сертификатах, но у меня нет специальных сертификатов на моем ноутбуке dev, и он проверяет подлинность всего на 636 при отладке. Я побежал Wireshark и сделал попытку auth на Server1. Я обновил свой вопрос выше с результатами и расположением полного файла журнала со всем трафиком более 636. – Baxter
Я прошел через эти журналы Wireshark, и, как вы, вероятно, заметили также, самая большая ошибка в трафике наблюдается во время TLS Последовательность квитирования. На сервере Server1 в средстве просмотра событий под системными журналами вы видите предупреждения или ошибки от Schannel? Вам может потребоваться определить SSL-соединение в дополнение к Соглашению: 'bool validated = pc.ValidateCredentials (имя пользователя, пароль, ContextOptions.Negotiate | ContextOptions.SecureSocketLayer);' – X3074861X