我读到密码哈希存储在 msPKIAccountCredentials 中,当我尝试读取密钥时,我得到 __ComObject 无法转换成任何东西。AdExplorer 显示数据类型是“ORName”,数据似乎是“二进制”形式。如何使用 c# 读取此属性?这不是唯一具有这种“数据类型”的属性。
public static void Main(string[] args){
System.DirectoryServices.DirectoryEntry d = new System.DirectoryServices.DirectoryEntry("LDAP://мой_лдап.loc", "логин", "пароль");
System.DirectoryServices.DirectorySearcher ds =
new System.DirectoryServices.DirectorySearcher(d, "(&(objectCategory=user)(mail=мой_емайл))");
if (ds.FindOne() != null) {
object x = ds.FindOne().GetDirectoryEntry().Properties["msPKIAccountCredentials"].Value;
object[] xx = (object[])x;
Type t = xx[0].GetType();
Console.WriteLine(xx[0].ToString());
// И всё.
}
}
我收到了答案 __ComObject 并且不可能以任何方式减去值。这里似乎描述了“数据类型”或架构http://docs.microsoft.com/en-us/windows/win32/adschema/s-object-or-name 。