5 Stimmen

Wie startet man einen IIS-Prozess mit einem bestimmten Benutzernamen und Passwort?

Ich versuche, eine Anwendung von unserer internen Website aus zu starten. Wenn ich Process.Start("notepad"); Ich kann sehen, dass der Notepad-Prozess in unserem Webserver mit der in der App-Pool-Einstellung angegebenen Standardidentität gestartet wurde.

Aber ich muss den Prozess mit einem bestimmten Benutzernamen und Passwort starten. Ich habe also versucht, diese Codezeile auszuführen

string password = "XXXXX";
System.Security.SecureString securePwd = new System.Security.SecureString();
foreach (char c in password)
{
    // Append the character to the password.
    securePwd.AppendChar(c);
}
Process.Start("notepad", "username", securePwd, "domain");

In diesem Fall sehe ich nicht einmal, dass ein Notepad-Prozess auf dem Webserver gestartet wurde. Die Codezeilen werden ausgeführt, denn wenn ich ein falsches Kennwort eingebe, kann ich sehen, dass meine Webseite den Fehler "schlechter Benutzername oder Kennwort" ausgibt.

4voto

Pritam Karmakar Punkte 2693

Ich danke Ihnen allen für Ihre Antwort. Hier habe ich die Lösung und jetzt mein Prozess Start mit impersonated Benutzer.

https://docs.microsoft.com/en-US/troubleshoot/aspnet/spawn-process-under-impersonated-user

Danke.

0voto

Conrad Frix Punkte 50686

Der Code, den Sie geschrieben haben, sieht für mich gut aus. Vielleicht ist das Problem

Ich sehe nicht einmal einen Notepad-Prozess

Ich würde Folgendes versuchen

Erfassen Sie die ID und teilen Sie sie dem Kunden mit, z. B.

Process note = Process.Start("notepad", "username", securePwd, "domain");
Response.Write( note.ID ); //Or whatever mechanism you prefer. 

Melden Sie sich dann am Server an und fragen Sie mit PowerShell den Prozess ab

z.B..

PS C:\> get-process notepad  | Select ProcessName, Id 
ProcessName                                                                  Id
-----------                                                                  --
notepad                                                                    5512

Die Id sollte mit dem übereinstimmen, was an den Client geschrieben wurde

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X