是否可以检测是否使用runas命令打开应用程序?
我如何检测使用了哪个用户?
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
甚至不会检查凭据...所以在进行远程身份验证之前,您基本上不会获得身份验证 token
我能看到的唯一解决方案是尝试运行一个将返回用户凭据的远程进程。
关于c# - 检测 .net 应用程序是否使用 runas/netonly 启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390756/