2016-04-08 3 views
0

Я хочу реализовать функцию, которая соединяется с AD через Ldap.Попробуйте подключиться к AD через Ldap

Мой код:

public bool TryConnect(string server, string userName, string password) 
{ 
    try 
    { 
     var credentials = new NetworkCredential(@"test\administrator123", @"P2ssw0rd"); 
     var ldapidentifier = new LdapDirectoryIdentifier("Test"); 

     using (var ldapconn = new LdapConnection(ldapidentifier, credentials)) 
     { 
      ldapconn.AuthType = AuthType.Basic; 
      var request = new SearchRequest("dc=test, dc=local", "(objectClass=user)", System.DirectoryServices.Protocols.SearchScope.Subtree, null); 
      var response = (SearchResponse)ldapconn.SendRequest(request); 
     } 
    } 
    catch (Exception) 
    { 
     return false; 
    } 

    return true; 
} 

Это работает, но я не люблю его!

Есть ли более чистый способ, как протестировать соединение без попытки/улова и без какого-либо фиктивного поискового запроса?

ответ

1

Вместо выполнения поиска, вы можете вызвать метод Bind() для проверки подключения к сети, как так:

ldapconn.Bind(); 

Однако я не знаю, как проверить это без Try/уловом.

+0

Спасибо за помощь. – Raskolnikov

Смежные вопросы