繁体   English   中英

C# 获取模糊的 Active Directory 属性

[英]C# get obscure Active Directory Attributes

我正在尝试检索一些模糊的 Active Directory 属性:

  1. msexchmailbox 安全描述符,以及
  2. 终端服务配置文件路径(在用户参数中)

我很难找到他们两个。

例如,对于 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM