[英]C# get obscure Active Directory Attributes
我正在尝试检索一些模糊的 Active Directory 属性:
我很难找到他们两个。
例如,对于 msexchmailboxsecuritydescriptor,如果我有类似于以下的代码:
DirectoryEntry deresult = result.GetDirectoryEntry();
byte[] bteMailACL =(byte[])deresult.Properties["msexchmailboxsecuritydescriptor"].Value;
它抱怨我不能将 System.__ComObject 转换为 System.Byte[],但我已经看到了几个使用与上面类似的代码的示例。
我如何理解这些信息?
我认为您的问题出在声明的.Value
部分。 不知道这些示例是如何做到的,但我注意到,每当我调用这样的 AD 属性时,我总是会得到一个数组,在单个结果项的情况下我会得到索引 0。
只需将最后一条语句更改为:
byte[] btwMailACL = (byte[])deresult.Properties["msexchmailboxsecuritydescriptor"][0];
解决你的问题。
编辑:对于生产代码,请记住这可能会引发NullReferenceException
,因此请在调用索引之前检查属性是否实际返回值。
(在我的机器上测试并按上述方式工作)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.