Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 我可以使用委托模拟上下文在web服务中创建新流程吗?_.net_Impersonation - Fatal编程技术网

.net 我可以使用委托模拟上下文在web服务中创建新流程吗?

.net 我可以使用委托模拟上下文在web服务中创建新流程吗?,.net,impersonation,.net,Impersonation,我已经编写了一个ASP.NET 2.0 web服务,它由一个web应用程序使用,该应用程序从大型企业中新构建的win2k3服务器获取配置数据。我使用kerberos委派和模拟来通过用户域管理权限来询问刚刚构建的服务器。web池标识(IIS 6.0)在低权限服务帐户下运行。我让代表团的所有部分工作正常 我遇到的问题是,我想以编程方式启动一个进程,该进程执行cmd行可执行文件并重定向输出,所有这些都是在被模拟的用户的上下文中进行的。我知道该进程将位于模拟线程的外部,因此最终将在工作进程标识下运行,这

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

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

我一直在阅读CreateProcessAsUser和CreateProcessWithLogonNWAPI函数,但我所看到的只是人们在代码中特别声明用户名和密码的示例。这不是我能做的,因为环境是非常安全的,所以我需要做的是无缝地获取模拟用户的身份,以及如何将其输入到函数中,该函数将以正确的域管理员身份创建流程,并反馈标准输出


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

CreateProcessAsUser接受令牌。不是用户名和密码。毫无疑问,示例使用LogonUser,使用用户名和密码来获取令牌

然而,你不需要这样。如果您使用的是模拟,则您具有WindowsIdenity。只需使用WindowsIdentity上的token属性即可