Моя проблема:
Я занимаюсь разработкой автономного консольного приложения, которое должно найти текущее вошедшее в систему активное имя пользователя Windows.
Тестовые случаи:
В систему вошли несколько пользователей, и активен только один пользователь.
В настоящее время активен один пользователь, также доступ к другому удаленному пользователю
Другие пользователи удаленного пользователя - тот же пользователь, который в данный момент активен.
Порядок входа в систему может отличаться, но во всех случаях только текущий активный пользователь
Я нашел эти коды для вышеупомянутой задачи:
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 не чисто консольный, но если он удовлетворяетусловия и сопоставимые, я буду его использовать.
Я не знаю всех возможных тестовых случаев и не могу их протестировать.
Я не уверен, какой из них подойдет для всех моих тестовых случаев.
Я приму любое решение, которое удовлетворит потребности.
Помогите найтиВозможный путь.
Извините за любые ошибки и спасибо за помощь.