Невозможно перечислить все атрибуты LDAP с помощью C#

Я пытаюсь получить список всех атрибутов для данной записи LDAP со следующим кодом:

LdapConnection conn = GetOpenLdapConnection();

string filter = "(uid=" + user + ")";
SearchRequest search = new SearchRequest(LDAP_BASE, filter, SearchScope.Subtree, "*");
SearchResponse resp = conn.SendRequest(search) as SearchResponse;

SearchResultEntry entry = resp.Entries[0];
Console.WriteLine(entry.DistinguishedName);
foreach (string attr in entry.Attributes.AttributeNames)
    Console.WriteLine("Name:" + attr);

conn.Dispose();

Однако это печатает только одно имя атрибута: «uid». Я не понимаю, почему это не возвращает все атрибуты, которые я могу ясно видеть с помощью браузера LDAP (просматривая ту же запись для данного user, когда код пытается получить).

Честно говоря, я не хочу видеть все атрибуты; Я знаю имена тех, кого хочу получить, но даже если я заменю new SearchRequest(..., "*") на new SearchRequest(..., "attr1", "attr2", "etc."), единственное, что я смогу получить, это "uid". Есть ли здесь что-то очевидное, что мне не хватает?


person Jrop    schedule 06.01.2014    source источник


Ответы (1)


Ничего себе, в моей функции GetOpenLdapConnection() мне нужно было установить AuthType для LdapConnection на Basic. Теперь вроде все работает правильно. Надеюсь, это поможет кому-то еще.

person Jrop    schedule 07.01.2014