0

Мне нужно создать контакт в Active Directory. У меня есть класс, который расширяет UserPrincipal. Как использовать его для создания нового контакта? Код ниже бросает PrincipalOperationException «Запрошенная операция не удовлетворяет одному или нескольким ограничениям, связанным с классом объекта». исключение.Как создать контакт в Active Directory, расширив класс UserPrincipal?

[DirectoryObjectClass("contact")] 
[DirectoryRdnPrefix("CN")] 
internal class MyContact : UserPrincipal 
{ 

    public MyContact(PrincipalContext context) 
     :base(context) 
    { 
    } 

} 

using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "domain", 
    "OU=Unit1,DC=domain,DC=com", "login", "pass")) 
{ 

    using (MyContact principal = new MyContact(pc)) 
    { 
     principal.Name = "Cnt1"; 
     principal.Save(); 
    } 
} 

Что я делаю неправильно?

ответ

0

контактный объект не является ответственностью за безопасность. У него нет имени учетной записи SID или SAM. Не представляется правильным использовать какой-либо класс Principal для представления контактного объекта.

+0

Пользовательский UserPrincipal имеет DirectoryObjectClass, где вы можете указать класс AD. Я смог создать класс, полученный из UserPrincipal, поиска, чтения и обновления контактов и всех атрибутов AD, специфичных для Contact. Все работает отлично. Поэтому я думаю, что это должно быть возможно. Единственное, что я не могу понять, это создать новый контакт с помощью UserPrincipal. Я предполагаю, что есть какое-то свойство, специфичное для Contact, которое либо отсутствует, либо является дополнительным, и мне нужно как-то удалить его из UserPrincipal. –

+0

Я думаю, что он работает только для классов, представляющих принципала безопасности. контакт не является руководителем безопасности (нет имени учетной записи SID, SAM), он также не имеет многих атрибутов, поддерживаемых пользователем (например, userAccountControl). Если основной класс Principal попытается получить доступ к связанной информации, это может вызвать проблемы. В любом случае, если вы никогда не прикасаетесь к каким-либо свойствам, связанным с руководителем или пользователем безопасности, возможно, это сработает. Но я очень подозреваю. – baldpate

Смежные вопросы