Когда я пытаюсь обновить поле имени (соответствует 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");
}