Преобразовать выделенное имя в каноническое имя
С помощью System.DirectoryServices
(т.е. DirectoryEntry
класс) есть ли способ преобразовать DistinguishedName
атрибут или получить каноническое имя, которое обычно отображается в оснастке " Active Directory - пользователи и компьютеры"? Я понимаю, что могу сделать это с помощью регулярных выражений, но я бы предпочел более надежный подход.
Например, я хочу преобразовать это
CN= Мердок \, Джеймс,OU= Инвалиды,OU=GOG,DC=contoso,DC= локальный
к этому
contoso.local/GOG/ Люди с ограниченными возможностями / Мердок, Джеймс
2 ответа
Решение
Это сконструированный атрибут. На 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()