Simple impersonation won't allow you to start a process as another user. You would have to use CreateProcessAsUser
from the Windows API together with the appropriate privileges
The CreateProcessAsUser
function does not need the password of a user. It requires a primary token which can be obtained from the System.Security.Principal.WindowsIdentity
object. Your ASP.NET process must have the Act as part of the operating system privilege to get an impersonation-level token.
How To: Use Impersonation and Delegation in ASP.NET 2.0 has all the details on this topic.
A related question which also might be relevant is this one: Using Process.Start() to start a process as a different user from within a Windows Service.