Можно ли обнаружить, открывается ли приложение командой runas?Определить, запущено ли приложение .net с runas/netonly
И как я могу определить, какой пользователь используется?
runas /netonly /user:DOM\usr "C:\App.exe"
Можно ли обнаружить, открывается ли приложение командой runas?Определить, запущено ли приложение .net с runas/netonly
И как я могу определить, какой пользователь используется?
runas /netonly /user:DOM\usr "C:\App.exe"
Вы можете проверить для пользователя, на котором выполняется приложение, используя
System.Security.Principal.WindowsIdentity.GetCurrent()
Обратите внимание, что с помощью /netonly
, нет никакого способа, чтобы получить предоставленные учетные данные на локальном процессе. LSA позаботится об этом, и, насколько я знаю, вы просто не можете сделать это из своего местного процесса.
Есть несколько полезных объяснений, почему on this link, но почему в основном сводится к: в то время как учетные данные, которые вы поставляете, хранятся, они даже не проверяются, пока вы не выполните какую-либо дистанционную проверку подлинности (используя SSPI), и это проверяется только на самом удаленном компьютере.
Вы даже можете сделать:
runas /netonly /user:FAKE\fake something.exe
И учетные данные не будут даже проверить ... так что вы в основном не получить маркер аутентификации, пока вы делаете пульт дистанционного AUTH
Только решение, которое я может попытаться запустить удаленный процесс, который вернет учетные данные пользователя.
Нет, это не дает пользователю DOM \ USR. – Tim
@Tim yep, я пропустил '/ netonly', см. Мое обновление ... Я не думаю, что есть способ сделать это – Jcl
Все еще это должно быть возможно. В моем приложении я протестировал его с помощью ServerManager.OpenRemote (ServerName). Этот метод способен обнаруживать пользователя. – Tim
Проверьте, работает ли это для вас [Run AS] (http://stackoverflow.com/questions/11660184/c-sharp-check-if-run-as-administrator) –