Ошибка при получении списка пользователей в группе из активного каталога (System.DirectoryServices.AccountManagement в C #)

1

Я получаю ошибку при поиске пользователей в группе из активного каталога. Описание ошибки: {"Информация о домене не может быть восстановлена (1355)"}. Пробовал с.Net 4.0 и.Net 4.5. Строка, для которой я получаю сообщение об ошибке, комментируется сообщением об ошибке.

public List<DirectoryUser> GetUsersUnderGroup(string groupName)
    {
        var directoryUserList = new List<DirectoryUser>();
        string directoryServerIp="192.168.1.xxx";
        string ouName="xxxOuName";
        string domainComponents="DC=xxxComopnent1,DC=xxxComponent2";
        string directoryAdminUserId="directoryAdminuser";
        string directoryAdminPassword="directoryAdminPassword";
        using (var principalContext = principalContext = new PrincipalContext(ContextType.Domain, directoryServerIp, string.Format("OU={0},{1}", ouName, domainComponents), directoryAdminUserId, directoryAdminPassword);)
        {
            using (var group = GroupPrincipal.FindByIdentity(principalContext, groupName))
            {
                if (group != null)
                {                       
                    var users = group.GetMembers(true);
                    //Works fine till the above line. variable users is having not null value but
                    //exception while iterating through the loop.Following is the exception
                    //{"Information about the domain could not be retrieved (1355)."}
                    foreach(var user in users)
                    {                            
                        Console.Write(user.DistinguishedName);
                    }
                }
            }
        }
        return directoryUserList;
    }

Код для создания PrincipalContext отлично работает в других сценариях (например, список групп и OU и т.д.),

  • 0
    Вы пытались выполнить поиск в Google по запросу «Не удалось получить информацию о домене (1355)»? Много-много хитов.
  • 0
    Пробовал некоторые методы, такие как указание ContextOptions EgContextOptions.SimpleBind. Бутон не работал.
Теги:
authentication
active-directory

1 ответ

1

В этой статье описаны причины вашей проблемы и возможные решения: link. В принципе, вы должны использовать класс DirectoryEntry, если вы запускаете свой код не с компьютера, где находится контроллер домена. Эта статья должна помочь вам понять этот класс: link

Ещё вопросы

Сообщество Overcoder
Наверх
Меню