Heim >Backend-Entwicklung >C++ >Wie führe ich einen .NET-Prozess als anderer Benutzer aus?
Dieser Artikel befasst sich mit dem häufigen Problem, dass zum Starten eines Prozesses in .NET Administratorrechte erforderlich sind. Die vorgestellte Lösung nutzt Identitätswechsel, um den Prozess unter einem Benutzerkonto mit den erforderlichen Berechtigungen auszuführen.
Der folgende Codeausschnitt zeigt, wie dies mithilfe einer ImpersonationHelper-Klasse erreicht wird (nicht gezeigt, aber angenommen, dass sie die notwendige Identitätswechsellogik verarbeitet):
<code class="language-csharp">System.Diagnostics.Process proc = new System.Diagnostics.Process(); System.Security.SecureString ssPwd = new System.Security.SecureString(); proc.StartInfo.UseShellExecute = false; proc.StartInfo.FileName = "filename"; proc.StartInfo.Arguments = "args..."; proc.StartInfo.Domain = "domainname"; proc.StartInfo.UserName = "username"; string password = "user entered password"; foreach (char c in password) { ssPwd.AppendChar(c); } ssPwd.MakeReadOnly(); //Important security step proc.StartInfo.Password = ssPwd; proc.Start();</code>
Dieser Code initiiert einen Prozess mit angegebenen Anmeldeinformationen. Entscheidend ist, dass das Passwort mit SecureString
sicher gehandhabt wird. Denken Sie daran, eine angemessene Fehlerbehandlung zu implementieren und das SecureString
nach Gebrauch ordnungsgemäß zu entsorgen. Diese Methode bietet eine sichere Möglichkeit, Prozesse mit erhöhten Berechtigungen auszuführen, indem sie den Identitätswechsel des Benutzers nutzt.
Das obige ist der detaillierte Inhalt vonWie führe ich einen .NET-Prozess als anderer Benutzer aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!