Мне нужно проверить пользователя LDAP, проверив, существует ли такое имя пользователя в указанном домене. Для этого я использую этот код -
DirectoryEntry entry = new DirectoryEntry("LDAP://" + strDomainController);
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = "SAMAccountName=" + strUserName;
SearchResult result = searcher.FindOne();
return (result != null) ? true : false;
Это метод в библиотеке классов, на который я собирался ссылаться и использовать везде, где мне нужна эта функциональность в моем проекте.
Чтобы проверить это, я создал простое тестовое приложение. Тест происходит так -
Console.WriteLine(MyClassLib.MyValidateUserMethod("UserName", "Domain",ref strError).ToString());
Проблема, с которой я сталкиваюсь, заключается в том, что это работает нормально, когда я тестирую его с моим testapp, но в моем проекте, когда я пытаюсь использовать тот же метод с теми же учетными данными - объект DirectoryEntry
вызывает исключение "System.DirectoryServices.DirectoryServicesCOMException"
search.Filter
завершается ошибкой и выдает ex = {"Ошибка входа в систему: неизвестное имя пользователя или неверный пароль. \ r \ n"} исключение.
Я пытался подражать, но это не помогает. Так или иначе, тот же метод работает в mytestapp и не работает в моем проекте. Оба эти приложения находятся в моей локальной машине разработчика. Что мне не хватает? Есть идеи?