如何从窗口服务登录用户名

时间:2010-10-01 08:44:34

标签: wcf service

如何从窗口服务登录用户名。当我使用Environment.UserName做同样的事情我得到用户名为“系统”。

感谢 Arvind的

2 个答案:

答案 0 :(得分:2)

您获得系统,因为您的服务在系统帐户下运行。

有一篇关于codeproject的文章讨论了同样的事情..请查看http://www.codeproject.com/KB/vb/Windows_Service.aspx

System.Diagnostics.Process[] objArrProcess = System.Diagnostics.Process.GetProcessesByName("explorer");
string strCurrentUserName = objArrProcess[0].StartInfo.EnvironmentVariables["username"];

这适合我。

答案 1 :(得分:1)

查看此链接,该链接讨论从窗口服务获取当前登录用户 -

http://www.pcreview.co.uk/forums/thread-3460184.php

取自上述链接本身 -

  

当前登录的用户可以有0个或更多。如果你想要所有0或者   1个用户当前在控制台登录然后P / Invoke to   WTSGetActiveConsoleSessionId和WTSQuerySessionInformation。如果你想   所有用户然后你需要在一个。中调用WTSQuerySessionInformation   循环。