2016-07-15 2 views
3

Можно ли обнаружить, открывается ли приложение командой runas?Определить, запущено ли приложение .net с runas/netonly

И как я могу определить, какой пользователь используется?

runas /netonly /user:DOM\usr "C:\App.exe" 
+0

Проверьте, работает ли это для вас [Run AS] (http://stackoverflow.com/questions/11660184/c-sharp-check-if-run-as-administrator) –

ответ

2

Вы можете проверить для пользователя, на котором выполняется приложение, используя

System.Security.Principal.WindowsIdentity.GetCurrent() 

Обратите внимание, что с помощью /netonly, нет никакого способа, чтобы получить предоставленные учетные данные на локальном процессе. LSA позаботится об этом, и, насколько я знаю, вы просто не можете сделать это из своего местного процесса.

Есть несколько полезных объяснений, почему on this link, но почему в основном сводится к: в то время как учетные данные, которые вы поставляете, хранятся, они даже не проверяются, пока вы не выполните какую-либо дистанционную проверку подлинности (используя SSPI), и это проверяется только на самом удаленном компьютере.

Вы даже можете сделать:

runas /netonly /user:FAKE\fake something.exe 

И учетные данные не будут даже проверить ... так что вы в основном не получить маркер аутентификации, пока вы делаете пульт дистанционного AUTH

Только решение, которое я может попытаться запустить удаленный процесс, который вернет учетные данные пользователя.

+0

Нет, это не дает пользователю DOM \ USR. – Tim

+0

@Tim yep, я пропустил '/ netonly', см. Мое обновление ... Я не думаю, что есть способ сделать это – Jcl

+0

Все еще это должно быть возможно. В моем приложении я протестировал его с помощью ServerManager.OpenRemote (ServerName). Этот метод способен обнаруживать пользователя. – Tim

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