C#.NET Framework API中的CreateProcessAsUser()(不是Win32 API)

时间:2015-06-26 01:20:47

标签: c# impersonation process.start createprocessasuser

当我使用Win32 API CreateProcessAsUser()在我的C#.NET项目中使用模拟用户执行程序时,它已成功。

但我想要使用.NET Framework API实现。

有类似System.Diagnostics.Process.Start()的方法 但它与CreateProcessAsUser()不完全相同。

函数CreateProcessAsUser()接收" hToken"在第一个参数。因此,当我复制一个令牌并将其用于该功能时,我可以冒充用户并执行该用户的程序。

但System.Diagnostics.Process.Start()方法并没有提供这样的参数。

如果有人知道这件事,你能告诉我吗? 感谢

2 个答案:

答案 0 :(得分:2)

ProcessStartInfo在NET 2.0或更高版本中具有UserName和Password属性。

答案 1 :(得分:1)

没有原生解决方案。对不起,我很失望。

正如微软知识库所建议的那样,你只能通过P / Invocation(就像你这样做)来做到这一点: https://support.microsoft.com/en-us/kb/889251