Как получить имя учетной записи от UserPrincipal?

Я использую вход в Active Directory в одном из моих приложений Winforms. Я получаю объект UserPrincipal, но не знаю, как получить правильное имя учетной записи из этого объекта? Я вижу, что есть SamAccountName, совпадающее с именем моей учетной записи, но в нем указано, что это для старых версий Windows. Итак, как мне получить правильное имя учетной записи, независимо от старых или новых систем Windows?

Это код, который я использую для получения объекта

if (ADUserName.Length > 0)
    context = new PrincipalContext(ContextType.Domain, ADServer, null,  ADUserName, ADUserPassword);
else
    context = new PrincipalContext(ContextType.Domain, ADServer);

UserPrincipal.FindByIdentity(context, account)

person Banshee    schedule 08.07.2015    source источник


Ответы (1)


SamAccountName это "имя учетной записи", поскольку оно использовалось в Windows еще до появления Active Directory.

Это «устаревшее» имя, дополненное дополнительной информацией — вашим «отличительным именем» в контексте LDAP и т. д. — но оно является именем учетной записи Windows («короткое имя") - и это по-прежнему обязательное поле для любого нового создаваемого пользователя - просто используйте его!

Дополнительные сведения см. в разделе атрибуты именования пользователей. какое имя для чего используется в контексте AD.

person marc_s    schedule 08.07.2015