Max*_*r88 3 c# active-directory
我正在尝试检索一些令人沮丧的Active Directory属性:
我很难找到他们两个.
例如,对于msexchmailboxsecuritydescriptor,如果我的代码类似于以下内容:
DirectoryEntry deresult = result.GetDirectoryEntry();
byte[] bteMailACL =(byte[])deresult.Properties["msexchmailboxsecuritydescriptor"].Value;
Run Code Online (Sandbox Code Playgroud)
它抱怨我不能将System .__ ComObject强制转换为System.Byte [],但我看到了几个使用类似上面代码的例子.
我如何理解这些信息?
我认为你的问题是.Value声明的一部分.不确定示例是如何做的但是我注意到每当我调用这样的AD属性时,我总是会得到一个数组,在单个结果项的情况下我得到索引0.
只需将最后一个参数更改为:
byte[] btwMailACL = (byte[])deresult.Properties["msexchmailboxsecuritydescriptor"][0];
Run Code Online (Sandbox Code Playgroud)
解决你的问题.
编辑:对于生产代码,请记住这可以抛出一个NullReferenceException所以检查属性是否在调用索引之前实际返回了一个值.
(在我的机器上测试并按上述方式工作)