Я обнаружил, что один и тот же код распространяется по Интернету на нескольких сайтах, и он не работает для меня. Стив Эванс, вероятно, прав, что если вы используете .NET 3.5, вам не следует использовать этот код. Но если вы все еще используете .NET 2.0, вы можете попробовать это для аутентификации в ваших службах AD:
DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain,
userName, password,
AuthenticationTypes.Secure | AuthenticationTypes.SecureSocketsLayer);
object nativeObject = entry.NativeObject;
Первая строка создает объект DirectoryEntry с использованием домена, имени пользователя и пароля. Он также устанавливает AuthenticationTypes. Обратите внимание, как я устанавливаю безопасную (Kerberos) аутентификацию и SSL, используя оператор «Bitwise OR» ('|') между двумя параметрами.
Вторая строка заставляет NativeObject «entry» связываться со службами AD, используя информацию из первой строки.
Если выдается исключение, то учетные данные (или настройки) были неверными. Если не исключение, вы аутентифицированы. Сообщение об исключении обычно указывает, что пошло не так.
Этот код очень похож на тот, который у вас уже есть, но домен используется там, где у вас есть «путь», а имя пользователя не объединяется с доменом. Убедитесь, что вы правильно установили AuthenticationTypes. Это может сделать или сломать возможность аутентификации.