转换msexchsecuritydescriptor属性

时间:2014-10-14 07:57:57

标签: c# active-directory

我从这里开始:

并被告知使用msexchmailboxsecuritydescriptor AD属性。我找到了

但这不起作用,因为我不知道如何提供正确的p_InputValue。我收集了一个安全描述:

ResultPropertyValueCollection msexchsd = 
                       searchResult.Properties["msexchmailboxsecuritydescriptor"];

然后我试图获得一个值:

  • ResultPropertyValueCollection p_InputValue = msexchsd;在运行时将ResultPropertyValueCollection的InvalidCastException抛出到SecurityDescriptor
  • object p_InputValue = msexchsd[0];在运行时将 System.Byte [] 的InvalidCastException抛出到SecurityDescriptor
  • byte[] p_InputValue = (byte[])(msexchsd[0]);不允许进行"隐式转换"在编译期间从byte []到SecurityDescriptor
  • String p_InputValue = System.Text.Encoding.UTF8.GetString((byte[])(msexchsd[0]));不允许进行"隐式转换"在编译期间从字符串到SecurityDescriptor

这一行出现了所有这些错误:

SecurityDescriptor sd = (SecurityDescriptor) p_InputValue;

接下来我可以尝试什么?我标记了唯一明显的偏差:它看起来好像该属性是System.Byte [],但是我可以将哪些内容输入SecurityDescriptor?

1 个答案:

答案 0 :(得分:0)

解决方案:

  • ResultPropertyValueCollection无法转换为SecurityDescriptor
  • PropertyValueCollection可以转换为SecurityDescriptor
  • ResultPropertyValueCollection可以"转换"使用PropertyValueCollection
  • GetDirectoryEntry()