By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,151 Members | 1,060 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,151 IT Pros & Developers. It's quick & easy.

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

P: n/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(strPathToExecutab le, 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.
Nov 18 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Could you set up a small subweb that impersonates the user you want?
(using <impersonate> in web.config)

Lars-Erik

"Jørn A." <no**********@nospam.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
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(strPathToExecutab le, 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.

Nov 18 '05 #2

P: n/a
It seems like System.Diagnostics.Process.Start() still runs as the ASPNET
account.

-Jørn A.
"Lars-Erik Aabech" <la**************@markedspartner.noSPAMBLOCK> wrote in
message news:Op**************@TK2MSFTNGP09.phx.gbl...
Could you set up a small subweb that impersonates the user you want?
(using <impersonate> in web.config)

Lars-Erik

"Jørn A." <no**********@nospam.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
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(strPathToExecutab le, 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.


Nov 18 '05 #3

P: n/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.

--
Scott
http://www.OdeToCode.com

On Fri, 10 Sep 2004 15:23:52 +0200, "Jørn A."
<no**********@nospam.com> wrote:
It seems like System.Diagnostics.Process.Start() still runs as the ASPNET
account.

-Jørn A.


Nov 18 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.