如何模拟WellKnownSidType?

我知道我可以使用以下方式冒充Windows帐户: http : //msdn.microsoft.com/en-us/library/chf6fbt4.aspx

但是,如何模拟WellKnownSidType帐户呢?

 SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.LocalSystemSid, null); NTAccount account = sid.Translate(typeof(NTAccount)) as NTAccount; if (account != null) { //Impersonate here??? } 

首先,您将无法模拟“网络服务”或“本地服务”等内置帐户,除非您在“本地服务”帐户下运行,据我所知,该帐户只能由操作系统完成。

以下post提供了上述观点的可能解决方案(我没有尝试过,只是在我开始编写所有这些之前用谷歌搜索过),但它看起来很合理。

http://geek.hubkey.com/2008/02/impersonating-built-in-service-account.html

一旦在“本地服务”帐户下运行,您只需使用LogonUser(也在上面的链接中显示)使用众所周知的SID的帐户名登录,然后模拟令牌。

我看到上面的链接运行’CMD.EXE’作为一项服务,可以允许它与桌面交互,请注意,“与桌面交互”function已被弃用。

使用WindowsIdentity构造函数并按照此处的说明进行操作 。 除了其他方面,您将需要“作为操作系统的一部分”。