Starting a process (.exe-file) from ASP.NET with different user credentials

  • Thread starter Thread starter Jørn A.
  • Start date Start date
J

Jørn A.

I'm working on a web based user interface for a job scheduling system
(running scripts).

The system is using a non-windows scheduler software, but it's installed and
running as a windows service. The service is running with the credentials of
a specified domain user, and all processes kicked off by the scheduler
service runs with these credentials.

In the web based interface I want to add a "Run" button for each job, making
it possible to start a job (script) manually. The button is supposed to
start a process on the webserver, and I want this process to run with the
credentials of a specific user account (the same account as the scheduler
service runs as).

I tried using...
System.Diagnostics.Process.Start(strPathToExecutable, strArguments)
....but today processes started runs as the local ASPNET-account.

I found that there are two possible solutions.
1. This is a website that uses Integrated Windows(nt challenge/response)
authentication, and I could start the process with the credentials of the
user pushing the "Run" button (the user logged on to the website though the
web browser).
2. I could run the process with the credentials of one specific user
accound, independent of which user is clicking it.

I think the latter is preferable.

If anyone can help me with this dilemma I would really appreciate it.

-Jørn A.
 
Could you set up a small subweb that impersonates the user you want?
(using <impersonate> in web.config)

Lars-Erik
 
It seems like System.Diagnostics.Process.Start() still runs as the ASPNET
account.

-Jørn A.
 
Hi Jørn A.:

Yes, when a new process spawns it always takes the identity of the
host process and not the identity of the thread you launch from.

The only real way to get this to work in 1.1 is to PInvoke
CreateProcessWithLogonW. If you are trying to launch a GUI application
however, you are going to run into problems since ASPNET runs in a non
interactive desktop.
 
Back
Top