【问题标题】:Can I create a new process in web service using delegated impersonation context?我可以使用委托模拟上下文在 Web 服务中创建一个新进程吗?
【发布时间】:2011-04-08 20:51:26
【问题描述】:

我编写了一个 ASP.NET 2.0 Web 服务,该服务由一个 Web 应用程序使用,该应用程序出去并从大型企业中新建的 win2k3 服务器获取配置数据。我正在使用 kerberos 委托和模拟来通过用户域管​​理员权限来询问刚刚构建的服务器。 Web 池标识 (IIS 6.0) 在低权限服务帐户下运行。我的所有代表团部分都工作正常。

我遇到的问题是我想以编程方式启动一个执行 cmd 行可执行文件并重定向输出的进程,所有这些都在被模拟的用户的上下文中。我知道该进程将在模拟线程之外,因此最终将以工作进程身份运行,这就是我收到“访问被拒绝”消息的原因。

我一直在阅读有关 CreateProcessAsUser 和 createprocesswithlogonw API 函数的信息,但我所看到的只是人们在其代码中明确说明用户名和密码的示例。这不是我能做的事情,因为环境非常安全,所以我需要做的是无缝获取模拟用户的身份,以及如何将其输入到一个函数中,该函数将在正确的域管理员身份下创建进程反馈出 StdOutput。

这是可以实现的吗?如果可以,如何实现?

【问题讨论】:

    标签: .net impersonation


    【解决方案1】:

    CreateProcessAsUser 接受一个 Token。不是用户名和密码。毫无疑问,样本使用了 LogonUser,并使用用户名和密码来获取令牌。

    但是你不需要那个。如果您使用的是具有 WindowsIdenity 的模拟功能。只需在 WindowsIdentity 上使用 token 属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多