Я ударился головой о .Net 3.5 PrincipalContext, пытаясь установить соединение с OpenLDAP, установленным на той же машине, что и моя Visual Studio 2010 IDE (имя машины dev001).
Вот моя простая структура LDAP:
- base (dc = test, dc = com)
- testadmin (cn = testadmin,dc = test, dc = com)
- учетные записи (dc = account, dc = test, dc = com)
- testuser(cn = testuser, dc = account, dc = test, dc = com)
Вот фрагменты кода, которые я пробовал:
Фрагмент # 1 : комбинации имен: «localhost», «localhost: 389», «dev001», «dev001: 389», «test», «test.com»
PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, "localhost", "dc=accounts,dc=test,dc=com", "cn=testadmin,dc=test,dc=com", "testadminpassword");
Фрагмент # 2 Сочетания имен: "localhost", "localhost: 389", "dev001", "dev001: 389", "test", "test.com"
PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, "localhost", "dc=accounts,dc=test,dc=com", "testadmin", "testadminpassword");
Мне еще предстоит установить соединение с сервером.
Когда я использую «localhost», «localhost: 389», «dev001», «dev001: 389» или «test», я получаю ошибку:
System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
Когда я использую "test.com", я получаю ошибку:
System.DirectoryServices.AccountManagement.PrincipalServerDownException: с сервером не удалось связаться.---> System.DirectoryServices.Protocols.LdapException: сервер LDAP недоступен.