2014-01-06 17 views
0

我试图得到一个给定的LDAP条目中的所有属性的列表,用下面的代码:无法列出所有LDAP属性使用C#

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(..., "attr1", "attr2", "etc.")替换new SearchRequest(..., "*"),我似乎可以检索到的唯一一个是"uid"。这里有什么明显的我失踪?

回答

0

哇,在我的功能GetOpenLdapConnection()中,我需要将AuthType设为LdapConnectionBasic。现在一切似乎都在正常工作。希望这可以帮助别人。