C# .NET Framework API(非 Win32 API)中的 CreateProcessAsUser()
Posted
技术标签:
【中文标题】C# .NET Framework API(非 Win32 API)中的 CreateProcessAsUser()【英文标题】:CreateProcessAsUser() in C# .NET Framework API (NOT Win32 API) 【发布时间】:2015-06-26 01:20:46 【问题描述】:当我使用 Win32 API CreateProcessAsUser() 在我的 C# .NET 项目中使用模拟用户执行程序时,它是成功的。
但我想使用 .NET Framework API 来实现。
有类似 System.Diagnostics.Process.Start() 的方法 但它与 CreateProcessAsUser() 并不完全相同。
函数 CreateProcessAsUser() 在第一个参数处接收“hToken”。因此,当我复制一个令牌并将其用于该功能时,我可以模拟一个用户并与该用户一起执行一个程序。
但是 System.Diagnostics.Process.Start() 方法没有提供这样的参数。
如果有人知道这个,请告诉我吗? 谢谢
【问题讨论】:
【参考方案1】:ProcessStartInfo 在 NET 2.0 或更高版本中具有 UserName 和 Password 属性。
【讨论】:
我想使用另一个进程的进程令牌执行一个程序。我已经使用了你说的那个覆盖,但是因为权限被拒绝而失败了。【参考方案2】:没有本地解决方案。很抱歉让你失望了。
正如 Microsoft 知识库所建议的那样,您只能通过 P/Invocation 来执行此操作(就像您所做的那样): https://support.microsoft.com/en-us/kb/889251
【讨论】:
以上是关于C# .NET Framework API(非 Win32 API)中的 CreateProcessAsUser()的主要内容,如果未能解决你的问题,请参考以下文章
发布在 C# .net framework 4.6 中开发的 Web API 的命令 [重复]
C#代码在.NET Framework提供的环境下运行,允许直接操作内存吗
基于.Net Framework 4.0 Web API开发:ASP.NET Web APIs 基于令牌TOKEN验证的实现