将可分辨名称转换为规范名称

本文关键字:转换 规范名 | 更新日期: 2023-09-27 17:59:16

使用System.DirectoryServices(即DirectoryEntry类)有没有一种方法可以将DistinguishedName属性转换为或获得通常出现在Active Directory Users&计算机管理单元?我意识到我可以使用正则表达式来实现这一点,但我更喜欢一种更可靠的方法。

例如,我想转换这个

CN=Murdock'',James,OU=禁用用户,OU=GOG,DC=contoso,DC=本地

到这个

contoso.local/GOG/禁用用户/Murdock,James

将可分辨名称转换为规范名称

这是一个构造的属性。在DirectoryEntry上,您需要使用RefreshCache:

var de = new DirectoryEntry("CN=Murdock', James,OU=Disabled Users,OU=GOG,DC=contoso,DC=local");
de.RefreshCache(new string[] {"canonicalName"});

您将需要canonicalName属性。假设您已经有了将用户作为DirectoryEntry获取的代码。

userDe.Properties["canonicalName"][0].ToString()