«Указанный домен либо не существует, либо с ним невозможно связаться». - PullRequest
1 голос
/ 19 марта 2011

Я пытаюсь использовать класс DomainServices для получения списка OU из моей Active Directory.

Вот мой код:

public List<OrganizationalUnit> FindOrganizationalUnits(string domainName, string domainExtension, string parentOrganizationUnit)
{
    string tmpDirectory = String.Format("LDAP://ou={0},dc={1},dc={2}", 
                                            parentOrganizationUnit,
                                            domainName,
                                            domainExtension
    );

    DirectoryEntry directory = new DirectoryEntry(tmpDirectory);

    DirectorySearcher searcher = new DirectorySearcher(directory);
    searcher.Filter = "(objectClass=organizationalUnit)";
    searcher.SearchScope = SearchScope.Subtree;
    searcher.PropertiesToLoad.Add("displayName");

    var organizationalUnits = new List<OrganizationalUnit>();
    foreach (SearchResult result in searcher.FindAll())
    {
        //I just create and return a new OrganizationalUnit object based on the SearchResult result.
        organizationalUnits.Add(new OrganizationalUnit(result));
    }

    return organizationalUnits;
}

Есть ли какая-то конфигурация, которую я должен установитьна моем конце сервера , чтобы я мог использовать DirectoryServices для запроса объектов AD?

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

1 Ответ

0 голосов
/ 19 марта 2011

Из какого типа приложения вы запускаете этот код?AD запросы должны быть сделаны из аутентифицированного ресурса.Вы можете либо использовать текущие учетные данные пользователя, либо передать новое имя / пароль.

Службы обычно не имеют каких-либо проблем, работают под LocalSystem, но если это веб-приложение, работающее по стандарту IISразрешения, это может вызвать проблему.

Попробуйте добавить некоторые учетные данные, когда вы создаете экземпляр класса DirectoryEntry.

...