代码之家  ›  专栏  ›  技术社区  ›  John Simons

如何模拟WellKnownsIdType?

  •  1
  • John Simons  · 技术社区  · 14 年前

    我知道我可以使用以下方法模拟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???
    }
    
    2 回复  |  直到 12 年前
        1
  •  2
  •   M.Babcock    12 年前

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

    下面的文章提供了一个解决上述问题的可能方法(我没有尝试过,只是在我开始写这篇文章之前在谷歌上搜索了一下),但它看起来很合理。

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

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

    我看到上面的链接运行“cmd.exe”作为一个可以与桌面交互的服务,注意“与桌面交互”功能正在被弃用。

        2
  •  0
  •   Steven Sudit    14 年前

    使用 WindowsIdentity constructor 并遵循指示 here . 您需要“作为操作系统的一部分”以及其他内容。