Обновление поля Name на UserPrincipal

Когда я пытаюсь обновить поле имени (соответствует CN) на userPrincipal (принципал, правда), я получаю ошибку «сервер нежелает обрабатывать запрос» на вызов на userPrincipal .save ( ).

Я проверял, чтобы убедиться, что в одном и том же объекте нет другого объекта (CN).

КомпьютерныйКонтекст, на котором я работаю, является корнем домена (не совсем на уровне OU, где существует учетная запись пользователя).

Какую причину может быть для этой ошибки? Это то, что может быть связано с политикой безопасности (даже если я могу обновить все остальные поля)?

using (var context = new PrincipalContext(ContextType.Domain, ConfigurationManager.AppSettings["domain"], ConfigurationManager.AppSettings["rootDN"], ContextOptions.Negotiate, ConfigurationManager.AppSettings["username"], ConfigurationManager.AppSettings["password"])) {
    var user = UserPrincipal.FindByIdentity(context, IdentityType.Sid, "..."); // SID abbreviated

    user.Name = "Name, Test";

    user.Save();
}

Пользователь, который я использую для создания CONVELLCONTEXT, имеет права безопасности для изменения объектов AD. Если я обновляю какие-либо другие поля (например, фамилия, dreenmentname), все работает нормально.

Отредактируйте:

Я смог сделать то, что мне нужно сделать (с помощью ADSI), но я должен запустить следующий код при неверении. Код осенсития является уродливым кодом, и код ниже ломается от другого способа, я обновляю данные рекламы (с использованием каталогов. AccountManagement), поэтому я хотел бы получить лучшее решение.

using (var companyOU = new DirectoryEntry("LDAP://" + company.UserAccountOU)) {
    companyOU.Invoke("MoveHere", "LDAP://" + user.DistinguishedName, "cn=Name\, Test");
}
7
задан Chris Dwyer 13 September 2011 в 22:09
поделиться