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

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Maj 2012

[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?

CPU: 3930k||GPU: MSI 1080 TI||IBM MODEL M SSK
https://kluwert.se

Trädvy Permalänk
Medlem
Plats
I en mörk gränd
Registrerad
Okt 2001

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.

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