Premiär! Fyndchans i SweClockers Månadens Drop

[C#]Starta process som annan användare?

Permalänk
Medlem

[C#]Starta process som annan användare?

Tjenare.
Har ett problem med ett litet program jag håller på att skriva.

I programmet så anger jag
1:Domän
2:Användare
3:Lösenord
4: .Exe fil som ska köras

Med hjälp av dessa så vill jag kunna starta en process som vald användare.
Tex så kommer det användas för att starta en .exe fil som administratör, när nuvarande inloggad användare enbart är "normal" user.
Men problemet jag får med följande kod är "Du behöver en förhöjd behörighet"

var psi = new ProcessStartInfo(); psi.Domain = domain; psi.UserName = _USERNAME; System.String rawPassword = _PASSWORD; System.Security.SecureString encPassword = new System.Security.SecureString(); foreach (System.Char c in rawPassword) { encPassword.AppendChar(c); } psi.Password = encPassword; psi.FileName = _PATH; psi.UseShellExecute = false; Process.Start(psi);

Koden jag har är iprincip det som rekommenderas, när man googlar.
En annan variant är att använda "runas"med "UseshellExecute = true".
Men det medför att prompten för UAC kommer, och har man då inte rättigheter så ber ju den om lösenord, vilket personen i frågan inte ska ha tillgång till.

Så det perfekta scenariot är egentligen att programmet i frågan, har de 4 uppgifter hårdkodade.
Användaren startar mitt program, som sen möjliggör start av blabla.exe som adminanvändaren.

Har jag missat något eller går det inte gör som jag vill?

Permalänk
Medlem

https://www.codeproject.com/Articles/125810/A-complete-Impers...

Jag har för mig det var den där artikeln jag baserade min lösning på när jag byggde impersonation i ett asp.net projekt för nåt år sen. Osäker på om den funkar på att starta processer men tycker den borde göra det.

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue