Я пытаюсь интегрировать систему с Active Directory, используя материал System.DirectoryServices.AccountManagement. Наши ИТ-специалисты установили блок AD, и мой блок разработчика не является частью этого (или любого другого) домена.
Пока что у меня есть 3 строки кода в качестве теста:
var pc = new PrincipalContext(ContextType.Domain, "machine", "CN=Administrator,CN=Users,DC=domain,DC=com", "Password");
var user = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, "Administrator");
var gp = GroupPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, "Admins");
Создание PrincipalContext работает, как указано выше, но если я попытаюсь использовать доменное имя вместо имени сервера, я получаю сообщение об ошибке: с сервером невозможно связаться. Итак, я оставил это в имени машины.
При получении пользователя или группы я получаю сообщение об ошибке: Произошла локальная ошибка.
Для пользователя я также попробовал это с тем же результатом:
var user = UserPrincipal.FindByIdentity(pc, IdentityType.DistinguishedName, "cn=Administrator,ou=users,dc=domain,dc=com");
В общем, я сбит с толку: (
Есть ли у кого-нибудь предложения?
В качестве примечания, я бы хотел выгнать программиста, который думал, что «произошла локальная ошибка» будет полезной ошибкой. сообщение!
Ура
PS: Я могу использовать SysInternals AD Explorer со своего компьютера, и я могу видеть DNS, которые я пытаюсь использовать.
PPS: Если я использую machine.domain.com для имя при создании PrincipalContext, он также не может подключиться.