C # добавить пользователя активного каталога в группу

Я пытаюсь создать пользователя и добавить его в 3 группы, создание работает правильно, но добавление пользователя в группы иногда работает, а иногда отображается эта ошибка:

на сервере нет такого объекта

мой код для добавления пользователя в группу:

try
            {
                DirectoryEntry dirEntry = new DirectoryEntry("LDAP://" + group, ADUsername, ADPassword);
                if (dirEntry != null)
                {
                    dirEntry.Properties["member"].Add(userPrincipal.DistinguishedName);
                    dirEntry.CommitChanges();
                    dirEntry.Close();
                }
            }
            catch (System.DirectoryServices.DirectoryServicesCOMException E)
            {
                //doSomething with E.Message.ToString();

            }

person DevBassem    schedule 16.09.2018    source источник


Ответы (1)


Я испытал это, и в моей ситуации это произошло потому, что недавно созданный объект не был реплицирован на все наши контроллеры домена. Я решил эту проблему, введя 3-секундную задержку после создания пользователя. Затем я приступил к добавлению пользователя в группы.

person Jono    schedule 18.02.2019
comment
Да, это тоже была моя первая мысль после прочтения этого вопроса. Некоторые разработчики не любят засыпать (иногда по уважительной причине), но в реальной жизни это требуется в некоторых ситуациях :-) Возможно, только 1-секундная задержка и использование цикла повтора. - person Rainer Schaack; 18.04.2019