我有一个 Windows 服务需要当前登录的用户名。我尝试了 System.Environment.UserName
、Windows 身份和 Windows 窗体身份验证,但都以用户身份返回“System”,因为我的服务在系统特权下运行。有没有办法在不更改我的服务帐户类型的情况下获取当前登录的用户名?
最佳答案
这是一个 WMI获取用户名的查询:
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
ManagementObjectCollection collection = searcher.Get();
string username = (string)collection.Cast<ManagementBaseObject>().First()["UserName"];
您需要在 References 下手动添加 System.Management
。
关于c# - 如何从 .NET 中的 Windows 服务获取当前记录的用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5218778/