我知道我可以使用以下方法模拟 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???
}
最佳答案
首先,除非您在“本地服务”帐户下运行,否则您将无法模拟“网络服务”或“本地服务”等内置帐户,据我所知,这只能通过操作系统。
下面的文章为上述问题提供了一个可能的解决方案(我没有尝试过,只是在我自己开始写这些之前用谷歌搜索过),但它看起来很合理。
http://geek.hubkey.com/2008/02/impersonating-built-in-service-account.html
一旦在“本地服务”帐户下运行,您只需使用 LogonUser(也显示在上面的链接中)即可使用众所周知的 SID 的帐户名登录,然后模拟 token 。
我看到上面的链接将“CMD.EXE”作为一项服务运行,可以与桌面交互,请注意,“与桌面交互”功能已被弃用。
关于c# - 如何模拟 WellKnownSidType?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3682296/