получить имя пользователя без ограничения в 20 символов

#c# #.net

#c# #windowsdomainaccount

Вопрос:

Я должен прочитать журнал пользователя в своем приложении даже с помощью run as, а имя, созданное в домене в Windows server 2012, имеет 23 символа, я использовал :

 Environment.UserName


new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).Identity.Name;

System.Security.Principal.WindowsIdentity.GetCurrent().Name
  

но все это дает мне имя без последнего символа 3
Я использовал :

 UserPrincipal.Current.UserPrincipalName
UserPrincipal.Current.Name
  

но дайте мне отображаемое имя

как я могу получить полное имя для входа

Ответ №1:

Это жесткое ограничение для свойства sAMAccountName:

«Вы не можете изменить длину имени пользователя sAMAccountName, это определенное значение в схеме, и оно равно 20».

Смотрите: эта страница для источника

Может быть, вы могли бы попробовать UserPrincipalname

 System.DirectoryServices.AccountManagement.UserPrincipal.Current().UserPrincipalName
  

вам нужно добавить ссылку на AccountManagement пространство имен

Комментарии:

1. пользователь был создан в домене с именем пользователя @Domain, а длина имени пользователя равна 23, и я должен его прочитать

2. Я использовал его, но дайте мне отображаемое имя