2013-06-20 6 views
0

Итак, я с ума сходил, пытаясь понять, почему я не могу заставить мой LDAP-поиск работать.ASP.NET Bind and Query 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. Любая помощь вообще будет оценена по достоинству.

ответ

0

Вы устанавливаете корень, используя свойство searchroot. Корень установлен на запись, которую вы передаете конструктору, поэтому, возможно, вы не можете найти свою запись.

+0

Как я понял, конструктор DirectorySearcher, который я использую, принимает значение my DirectoryEntry и использует его для установки свойства searchroot. http://msdn.microsoft.com/en-us/library/y49s2h23.aspx Я ошибаюсь? – DR913

+0

Вы правы. Мои мысли были, так как это корень поиска, возможно, ваш поиск не смог найти запись, которую вы искали. Вы можете подтвердить это, изменив корень поиска на родительский узел и увидев, как вы это делаете. –

+0

После трех дней борьбы с этим кодом, оказалось, что у меня была проблема с разрешениями. Выяснил это, изменив корень поиска. – DR913