2016-07-27 2 views
-1

Я пытаюсь создать LDAP-Cnnection с помощью C#.Создание LDAP-соединения в .NET

Я нашел этот сервер, который дает LDAP сервер для тестирования

http://www.forumsys.com/en/tutorials/integration-how-to/ldap/online-ldap-test-server/

Я гуглом много поста и Пытался создать сводный кодекс

string domain = "ldap://ldap.forumsys.com/ou=mathematicians"; 
      string username = "cn=read-only-admin,dc=example,dc=com"; 
      string password = "password"; 
      string LdapPath = "Ldap://ldap.forumsys.com:389/ou=scientists,dc=example,dc=com"; 


      string domainAndUsername = domain + @"\" + username; 
      DirectoryEntry entry = new DirectoryEntry(LdapPath, domainAndUsername, password); 
      try 
      { 
       // Bind to the native AdsObject to force authentication. 
       Object obj = entry.NativeObject; 
       DirectorySearcher search = new DirectorySearcher(entry); 
       search.Filter = "(SAMAccountName=" + username + ")"; 
       search.PropertiesToLoad.Add("cn"); 
       SearchResult result = search.FindOne(); 

       // Update the new path to the user in the directory 
       LdapPath = result.Path; 
       string _filterAttribute = (String)result.Properties["cn"][0]; 
      } 
      catch (Exception ex) 
      { 

       throw new Exception("Error authenticating user." + ex.Message); 
      } 

Этот код не подключается он дает непредвиденная ошибка.

Я также пробовал некоторые другие учетные данные, но они не помогают ...

AUTH_LDAP_SERVER_URI = “ldap://ldap.forumsys.com” 
AUTH_LDAP_BIND_DN = “cn=read-only-admin,dc=example,dc=com” 
AUTH_LDAP_BIND_PASSWORD = “password” 
AUTH_LDAP_USER_SEARCH = LDAPSearch(“ou=mathematicians,dc=example,dc=com”, 
ldap.SCOPE_SUBTREE, “(uid=%(user)s)”) 

-------------------- 
$config[‘LDAP’][‘server’] = ‘ldap://ldap.forumsys.com'; 
$config[‘LDAP’][‘port’] = ‘389’; 
$config[‘LDAP’][‘user’] = ‘cn=read-only-admin,dc=example,dc=com'; 
$config[‘LDAP’][‘password’] = ‘password'; 

------------------------- 
$config[‘LDAP’][‘server’] = ‘ldap://ldap.forumsys.com/ou=mathematicians'; 
$config[‘LDAP’][‘port’] = ‘389’; 
$config[‘LDAP’][‘user’] = ‘gauss'; 
$config[‘LDAP’][‘password’] = ‘password'; 

-------------------------- 
OpenDSObject/GetObject functions, but don’t see a way to run a query with the ASDI objects. 
Set LDAP = GetObject(“LDAP:”) 
Set root = LDAP.OpenDSObject(“LDAP://ldap.forumsys.com:389″, “cn=read-only-admin,dc=example,dc=com”, “password”, 0) 
Set ou = LDAP.OpenDSObject(“LDAP://ldap.forumsys.com:389/ou=mathematicians,dc=example,dc=com””, “cn=read-only-admin,dc=example,dc=com”, “password”, 0) 
Set user = LDAP.OpenDSObject(“LDAP://ldap.forumsys.com:389/uid=riemann,dc=example,dc=com”, “cn=read-only-admin,dc=example,dc=com”, “password”, 0) 

Мне нужно какое-то предложение, что мне не хватает. любой ресурс будет полезен

+0

** Какая ** непредвиденная ошибка? –

+0

Вы пытались дать правильный протокол: LDAP вместо Ldap или ldap? Согласно этому http://forums.asp.net/t/1026497.aspx?LDAP+Problem+with+NET+Unknown+error+0x80005000+, который я просто искал в Google, это может быть причиной проблем. –

ответ

0

Попытка использования PrincipalContext для подключения к серверу LDAP. Вот хороший, как к статье сопоставляются, когда я начала работы: http://ianatkinson.net/computing/adcsharp.htm

ctx = new PrincipalContext(
    ContextType.Domain, 
    "contoso.local", 
    "OU=Security Groups,OU=Contoso Inc,DC=contoso,DC=local", 
    "contoso\sysadmin", 
    "[email protected]"); 
1

У меня был несколько похожий вопрос с этим сервером и Google послал меня сюда.

Одна проблема, которую я вижу, это проблема, чувствительная к регистру в LDAP-пути. Также мы должны указать AuthenticationType.

Пожалуйста, проверьте следующий код, который должен работать.

string ldapServer = "LDAP://ldap.forumsys.com:389/ou=scientists,dc=example,dc=com"; 
string userName = "cn=read-only-admin,dc=example,dc=com"; 
string password = "password"; 

var dirctoryEntry = new DirectoryEntry(ldapServer, userName, password, AuthenticationTypes.ServerBind); 

try { 
    object nativeObject = dirctoryEntry.NativeObject; 
    //Rest of the logic 
} catch (Exception ex) { 
    //Handle error 
} 
Смежные вопросы