0

次のコードを使用して、特定の 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"。ここで私が見逃している明らかなものはありますか?

4

1 に答える 1

0

うわー、私の関数GetOpenLdapConnection()では、 を に設定する必要がAuthTypeありましLdapConnectionBasic。現在、すべてが正しく機能しているようです。これが他の誰かに役立つことを願っています。

于 2014-01-07T16:32:22.263 に答える