none
Поиск пользователя в AD RRS feed

  • Вопрос

  • Приветствую!

    Уже голова гудит, а решения нет. Решил обратится за помощью к вам.

    Есть метод DirectorySearcher.FindOne(). В домене прекрасно работает под администратором и не как не хочет под обычным пользователем, выдает исключение - не найден сетевой путь. Вне домена работает под любым пользователем. Уже не знаю что и думать. Вот кусок проблемного кода:

     
    string ldapPatch = "LDAP://server:389/DC=domain,DC=com";
    string ldapUser = "administrator";
    string ldapPassword = "password";
    string ldapFilter = "(&(objectclass=person)(SAMAccountName={0}))";
    string targetUser = "user";
        
    // Поиск пользователя targetUser
    DirectoryEntry entry = new DirectoryEntry(ldapPatch, ldapUser, ldapPassword);// Подключения к внешнему домену
    DirectorySearcher ds = new DirectorySearcher(entry);
    ds.Filter = string.Format(ldapFilter, targetUser);
    SearchResult result = ds.FindOne();
    usr = result.GetDirectoryEntry(); // Экземпляр учетной записи пользователя
    
    Ошибку получаю на предпоследней строке приведенного кода. Попытался проверить подключение к каталогу с помощью метода DirectoryEntry.Exists(ldapPatch), получил ту же ошибку, значит проблемы с подключением к каталогу. Есть у кого опыт работы с подобными задачами?
    29 октября 2013 г. 20:30

Ответы

  • Все, отбой, почти 2 дня убил на это, но разобрался.

    Дело в том, что программу я положил на рабочий стол пользователя. У всех пользователей путь к рабочему столу имеет вид \\fs\folders$\ИмяПользователя\Desktop , промежуточная папка folders$ является скрытой и защищенной от пользователей, чтобы не лезли куда не надо. Почему то моя программа проверяла доступность всех папок в пути и спотыкалась на \\fs\folders$ , вот откуда ошибка "Не найден сетевой путь". Выложил прогу на другой ресурс, все забегало.

    ЗЫ. Правда я все равно никакой связи между доступом к папке и вызовом метода DirectorySearcher.FindOne(). не вижу, весь остальной код работает корректно. Мистика!

    29 октября 2013 г. 21:57

Все ответы

  • Все, отбой, почти 2 дня убил на это, но разобрался.

    Дело в том, что программу я положил на рабочий стол пользователя. У всех пользователей путь к рабочему столу имеет вид \\fs\folders$\ИмяПользователя\Desktop , промежуточная папка folders$ является скрытой и защищенной от пользователей, чтобы не лезли куда не надо. Почему то моя программа проверяла доступность всех папок в пути и спотыкалась на \\fs\folders$ , вот откуда ошибка "Не найден сетевой путь". Выложил прогу на другой ресурс, все забегало.

    ЗЫ. Правда я все равно никакой связи между доступом к папке и вызовом метода DirectorySearcher.FindOne(). не вижу, весь остальной код работает корректно. Мистика!

    29 октября 2013 г. 21:57
  • Спасибо, что поделились найденным решением.

    30 октября 2013 г. 7:32
    Отвечающий