获取ADLDS-Class的所有可写属性

时间:2014-10-29 10:06:43

标签: c# .net vb.net adlds

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

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

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

目前我使用我的schemaBinding来获取Person-Class(CN = Person)的Directory-classSchema-Entry,从中我读取一些属性值(如“AllowedAttributesEffective”,“mayContain”,“AllowedAttributes”) - i通过这种方式获得最多的属性 - 但缺少一些属性!例如“telephoneNumber”-Property(attributeSchema:CN = Telephone-Number)

有人知道如何获得课程的这些属性吗? ADSI-Edit执行此操作:当我使用adsi-edit创建新对象时,我可以在提交新条目之前为所有可能的属性赋值。

非常感谢任何提示!

(。欢迎使用网络代码)

1 个答案:

答案 0 :(得分:1)

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

其中一些属性是“计算”的,并且在目录条件下不是持久的。 因此,它意味着调用RefreshCache()方法并将所需的属性名称作为字符串数组传递。

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

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

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