Получить все доступные для записи свойства ADLDS-класса

1

Я разрабатываю приложение, которое может работать с MS-ADSL-службой. В настоящее время можно создавать записи-каталоги и присваивать значения некоторым свойствам. До сих пор не очень интересная задача:

Im мое приложение может (должно быть) настроить, какие свойства класса (например: класс CN = Person) должны быть назначены значениями, которые оцениваются во время выполнения в моем приложении.

Короче говоря: я хочу получить все (записываемые) свойства класса. Без создания и сохранения нового CN = Person-Object раньше.

В настоящее время я использую свой schemaBinding, чтобы получить Class-ClassSchema-Entry класса Person (класс CN = Person), откуда я прочитал некоторые значения свойств (например, "AllowedAttributesEffective", "mayContain", "AllowedAttributes") - я получаю максимум свойства этим способом - но некоторые свойства отсутствуют! Например, "phoneNumber" -Property (атрибутSchema: CN = Telephone-Number)

Кто-нибудь знает, как получить эти свойства класса? ADSI-Edit делает это: когда я создаю новый объект с помощью adsi-edit, я могу назначить значения всем возможным свойствам, прежде чем совершать новую запись.

Большое спасибо за любой намек!

(код.net приветствуется)

Теги:
adlds

1 ответ

1
Лучший ответ

Я нашел решение для своей задачи!

Некоторые из этих свойств "вычисляются" и не сохраняются в каталоге. Таким образом, он предназначен для вызова метода RefreshCache() и передачи необходимых имен свойств в виде массива строк.

directoryEntry.RefreshCache(new string[] { "allowedAttributesEffective",
                                            "allowedAttributes",
                                            "systemMayContain",
                                            "systemMustContain" });

После этого вызова свойства имеют значения....

if (directoryEntry.Properties["systemMayContain"]).Value != null)
   {
    /// Success
   }

Ещё вопросы

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