Преобразовать выделенное имя в каноническое имя

С помощью 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()
Другие вопросы по тегам