0

因此,我一直在让自己发疯,试图弄清楚为什么我的 LDAP 搜索无法正常工作。

private String getDNFromLDAP(String strUID)
    {
        String strDN = "";

        //Create an LDAP Entry Object
        DirectoryEntry entry = new DirectoryEntry("LDAP://something.blah.com/cn=people,dc=blah,dc=com");
        entry.AuthenticationType = AuthenticationTypes.SecureSocketsLayer;
        entry.Username = "cn=myaccount,cn=special,dc=blah,dc=com";
        entry.Password = "supersecret";

        DirectorySearcher mySearcher = new DirectorySearcher(entry);
        mySearcher.SearchScope = SearchScope.Subtree;
        mySearcher.Filter = "(uid=" + strUID + ")";
        SearchResult result = mySearcher.FindOne();

        int nIndex = result.Path.LastIndexOf("/");
        strDN = result.Path.Substring((nIndex + 1)).ToString().TrimEnd();

        //Clean up objects
        entry.Close();
        entry.Dispose();
        mySearcher.Dispose();

        //returns the DN
        return strDN;
    }

我知道我正在搜索的对象存在(通过 ldapsearch 确认),但我的结果一直是空的。我怀疑基本 dn 存在问题,但我不知道如何确认 DirectorySearch 使用什么作为基本 dn。任何帮助将不胜感激。

4

1 回答 1

0

您使用 searchroot 属性设置根。根设置为您传递给构造函数的条目,因此这可能是您找不到条目的原因。

于 2013-06-20T17:26:29.757 回答