1

我正在尝试在 Win 7 上查找当前登录用户的 SID。我正在使用

string _CurrentUser = System.Security.Principal.WindowsIdentity.GetCurrent().User.Value.ToString();

当我在控制台应用程序中运行它时,我得到用户的 SID 为“S-1-5-21-670676956-2645971461-1681047478-500”,但是当我将上述行放在 Windows 服务中时,我得到一个不同的 SID,即“S-1-5-18” 我了解 Windows 服务以不同的帐户运行。如何在 Windows 服务中获取用户的 SID,与在控制台应用程序中获取的相同?

此外,当我在 Win XP 中运行相同的代码时,Windows 服务和控制台应用程序会提供与 Win 7 不同的相同 SID。

4

1 回答 1

0

您需要使用终端服务列出通过控制台或远程桌面登录的用户,检查控制台上的用户,并据此获取其 sid。

这是一个很好的.NET库来做到这一点:

http://code.google.com/p/cassia/

于 2012-06-24T23:45:31.263 回答