检测.net应用程序是否以runas / netonly启动

时间:2016-07-15 07:54:00

标签: c# runas

是否可以使用runas命令检测应用程序是否已打开?

如何检测用户是否被使用?

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

1 个答案:

答案 0 :(得分:2)

您可以使用

检查正在运行该应用程序的用户
System.Security.Principal.WindowsIdentity.GetCurrent()

请注意,使用/netonly时,无法在本地进程上获取提供的凭据。 LSA负责这一点,据我所知,你不能从当地的流程中做到这一点。

对于on this link的原因有一些很好的解释,但原因主要归结为:当您提供的凭据存储时,在您进行任何类型的远程身份验证(使用SSPI)之前,它们甚至都不会被检查,并且只能在实际的远程计算机上进行检查。

你甚至可以这样做:

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

凭证甚至不会被检查......所以你基本上不会得到一个身份验证令牌,直到你做远程身份验证

我能看到的唯一解决方案是尝试运行一个将返回用户凭据的远程进程。