【发布时间】: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