【发布时间】:2009-05-07 07:30:46
【问题描述】:
美好的一天,
我的 Web 应用设置为使用 Windows 身份验证,并且 Impersontation 设置为 true。
我不想使用已登录的用户帐户启动进程。但是,当我尝试启动 notepad.exe 时,它是作为网络服务运行的。
我尝试了不同的模仿技术,但都没有奏效。
请帮忙。
【问题讨论】:
标签: asp.net
美好的一天,
我的 Web 应用设置为使用 Windows 身份验证,并且 Impersontation 设置为 true。
我不想使用已登录的用户帐户启动进程。但是,当我尝试启动 notepad.exe 时,它是作为网络服务运行的。
我尝试了不同的模仿技术,但都没有奏效。
请帮忙。
【问题讨论】:
标签: asp.net
简单的模拟不允许您以其他用户身份启动进程。您必须使用 Windows API 中的 CreateProcessAsUser 以及适当的权限
CreateProcessAsUser 函数不需要用户的密码。它需要一个 primary 令牌,该令牌可以从 System.Security.Principal.WindowsIdentity 对象获得。您的 ASP.NET 进程必须具有充当操作系统的一部分权限才能获得模拟级别的令牌。
How To: Use Impersonation and Delegation in ASP.NET 2.0 拥有该主题的所有详细信息。
一个也可能相关的相关问题是:Using Process.Start() to start a process as a different user from within a Windows Service.
【讨论】: