在C#中,我使用以下代码绑定到安全的LDAP站点
authServer =
new DirectoryEntry("LDAP://whatever.com:636",
authServerUsernameFromConfig,
authServerPasswordFromConfig,
AuthenticationTypes.Anonymous );
然后搜索找到的用户。
然后检查以下集合,查找“groupMembership”的属性名称
DirectorySearcher directorySearch = new DirectorySearcher(authServer, filterKey);
...
SearchResult result = directorySearch.FindOne();
...
authUser = new DirectoryEntry(result.Path, userDN, password, AuthenticationTypes.None);
...
(read) authUser.Properties.PropertyNames
但是,使用636安全端口时未找到任何一个。找到其他属性。当绑定到非安全PORT时,所有属性都可以找到具有636绑定的属性以及那些名为groupMembership的属性。
任何人都可以解释为什么会这样或如何检索它们。
似乎使用LDP.exe实用程序可以看到这些groupMembership属性与安全端口636绑定。
答案 0 :(得分:4)
使用ldapsearch
等已知良好工具验证LDAP客户端是否可以根据需要访问数据。如果已知良好的LDAP客户端可以访问数据而手动编码的LDAP客户端不能访问,则检查搜索请求的以下参数:
BASE
仅返回条目和请求属性,ONE
返回直接从属于基础对象的条目,SUB
返回基础对象,所有条目都从属于基础对象,在任何水平。