2013-05-03 4 views
-1

Можно запустить exe как пользователь, отличный от того, который был в данный момент зарегистрирован (используя «run as»).Получить имя пользователя из процесса, запущенного под «run as» credentials

Например, я вхожу в систему как «user1» в Windows и запускаю исполняемый файл с «run as» с использованием учетных данных «User2».

Как восстановить имя пользователя/идентификатор пользователя «User1» (который вошел в систему в настоящее время), а не «User2» (который работает в процессе)?

I.e. System.Environment.UserName дают User2 (как и ожидалось).

+0

'Просьба code' не является хорошим способом закончить вопрос. –

+0

Пожалуйста, проверьте, не изменилось ли мое редактирование. –

+0

@ Алексей Левенков да именно это я и хотел .. – Dwellerincellar

ответ

2

Вы можете получить текущую идентификацию пользователя, под которым работает текущий поток (не обязательно зарегистрированный пользователь), используя WindowsIdentity.GetCurrent(). В качестве альтернативы вы можете получить имя пользователя, зарегистрированного в журнале, через свойство Environment.UserName. Однако не гарантируется, что пользователь будет выполнять текущий процесс.

string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 

См http://msdn.microsoft.com/en-us/library/system.environment.username.aspx

Смежные вопросы