次のコードを使用して、特定の 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」という 1 つの属性名のみを出力します。LDAPブラウザを使用して明確に表示できるすべての属性が返されない理由について混乱しています(user
コードが取得しようとしているのと同じエントリを参照しています)。
正直なところ、すべての属性を表示する必要はありません。検索したいものの名前は知っていますが、 に置き換えnew SearchRequest(..., "*")
てもnew SearchRequest(..., "attr1", "attr2", "etc.")
、検索できるように見えるのは だけです"uid"
。ここで私が見逃している明らかなものはありますか?