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

时间:2014-04-21 14:36:39

标签: c# active-directory directoryservices directoryentry

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

例如,我想转换此

  

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

到这个

  

contoso.local / GOG /残疾用户/默多克,詹姆斯

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

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

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