获取ADLDS类的所有可写属性

本文关键字:属性 ADLDS 获取 | 更新日期: 2023-09-27 18:28:10

我正在开发一个可以处理MS ADLDS服务的应用程序。目前,可以创建目录条目并为某些属性赋值。在这之前并不是一项真正令人兴奋的任务:

在我的应用程序中,可以(应该)配置一个类(例如:CN=Person类)的哪些属性应该被分配值,这些值在应用程序的运行时进行评估。

长话短说:我想检索一个类的所有(可写的)属性。之前不创建和保存新的CN=Person对象

目前,我使用schemaBinding来获取Person类(CN=Person)的目录类Schema条目,从中读取一些属性值(如"AllowedAttributesEffective"、"mayContain"、"AllowedAttributes")-我通过这种方式获得了最多的属性-但有些属性丢失了!例如"电话号码"-属性(attributeSchema:CN=电话号码)

有人知道如何得到类的这些性质吗?ADSI Edit可以做到这一点:当我用ADSI Edit创建一个新对象时,我可以在提交新条目之前为所有可能的属性赋值。

非常感谢你的提示!

(欢迎使用.net代码)

获取ADLDS类的所有可写属性

我已经为我的任务找到了解决方案!

其中一些属性是"经过计算的",在目录中不持久。因此,它的意思是调用RefreshCache()方法,并将所需的属性名称作为字符串数组传递。

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

在该调用之后,属性具有值。。。。

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