从代码中确定我的进程正在运行的用户

Zan*_*son 27 c# process

确实没有迫切的理由让我问比其他好奇这个问题 - 使用C#,有没有办法从内部我的进程正在运行作为用户代码,以确定?为了说明使用代码:

static void Main(string[] args)
{
  string userID;
  //what goes here to fill in this userID variable?
  Console.out.WriteLine(string.Format("This process is running as {0}.", userID));
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*las 50

string userID = WindowsIdentity.GetCurrent().Name
Run Code Online (Sandbox Code Playgroud)

来自MSDN:WindowsIdentity.GetCurrent()WindowsIdentity.Name

  • 我认为,Environment.UserName是更常规的快捷方式. (7认同)
  • @赞,这是正确的,它返回进程的身份,而不是登录的用户帐户,尽管它们可能是相同的,也可能不是.它将正确返回LOCAL SYSTEM或NETWORK SERVICE,例如,在典型的IIS工作进程中.@Hans:OP要求进程'身份,而不是当前用户登录到控制台/会话(虽然它们可以是相同的!) (4认同)
  • 这不只是得到我登录的人,如果进程在其中一个帐户下运行,它会返回LOCAL SYSTEM或NETWORK SERVICE等吗? (2认同)