我知道,如果我想使用不同的凭据对网络资源进行身份验证,我可以使用Win32 API创建具有不同网络凭据的进程,方法是将newParcel.set(index, newBox)
传递给LOGON_NETCREDENTIALS_ONLY
之类的调用, CreateProcessWithLogonW
。
这相当于使用命令行CreateProcessWithTokenW
。
但是,存在一种边缘情况,被调用的进程可能需要访问远程域上的网络资源,然后访问最终用户自己的域中的网络资源。
如果我完全控制了被调用的进程,我希望我可以将它分叉两次 - 一次使用用户的常规凭证,一次使用网络凭证 - 并使用某种IPC在进程之间进行通信。
不幸的是,调用的进程不在我的控制范围内。
所以,在我走进这个兔子洞之前,是否有一个Win32 API可以创建具有多个网络凭据的进程,每个进程都应用于特定的目标服务器?
或者我是否必须从表中取出这个边缘情况,并推动替换被调用的进程?