Как получить текущее имя пользователя Windows в консольном приложении C #? - PullRequest
0 голосов
/ 31 октября 2019

Моя проблема:

Я занимаюсь разработкой автономного консольного приложения, которое должно найти текущее вошедшее в систему активное имя пользователя Windows.

Тестовые случаи:

  1. В систему вошли несколько пользователей, и активен только один пользователь.

  2. В настоящее время активен один пользователь, также доступ к другому удаленному пользователю

  3. Другие пользователи удаленного пользователя - тот же пользователь, который в данный момент активен.

Порядок входа в систему может отличаться, но во всех случаях только текущий активный пользователь

Я нашел эти коды для вышеупомянутой задачи:

string UserName1 = System.Security.Principal.WindowsIdentity.GetCurrent().Name; // Gives NT AUTHORITY\SYSTEM
string UserName2 = Request.LogonUserIdentity.Name; // Gives NT AUTHORITY\SYSTEM
string UserName3 = Environment.UserName; // Gives SYSTEM
string UserName4 = HttpContext.Current.User.Identity.Name; // Gives actual user logged on (as seen in <ASP:Login />)
string UserName5 = System.Windows.Forms.SystemInformation.UserName; // Gives SYSTEM
string DisplayName = System.DirectoryServices.AccountManagement.UserPrincipal.Current.DisplayName

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

Я не знаю всех возможных тестовых случаев и не могу их протестировать.

Я не уверен, какой из них подойдет для всех моих тестовых случаев.

Я приму любое решение, которое удовлетворит потребности.

Помогите найтиВозможный путь.

Извините за любые ошибки и спасибо за помощь.

...