Maison >développement back-end >C++ >Comment exécuter un processus .NET en tant qu'utilisateur différent ?

Comment exécuter un processus .NET en tant qu'utilisateur différent ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-11 11:42:41608parcourir

How to Run a .NET Process as a Different User?

Exécuter un processus .NET avec différentes informations d'identification utilisateur

Cet article aborde le problème courant de la nécessité de disposer de privilèges administratifs pour démarrer un processus dans .NET. La solution présentée utilise l'usurpation d'identité pour exécuter le processus sous un compte utilisateur avec les autorisations requises.

L'extrait de code suivant montre comment y parvenir à l'aide d'une classe ImpersonationHelper (non illustrée, mais supposée gérer la logique d'usurpation d'identité nécessaire) :

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

Ce code lance un processus en utilisant les informations d'identification spécifiées. Surtout, le mot de passe est géré de manière sécurisée à l’aide de SecureString. N'oubliez pas de mettre en œuvre une gestion appropriée des erreurs et de jeter le SecureString correctement après utilisation. Cette méthode fournit un moyen sécurisé d'exécuter des processus avec des privilèges élevés en tirant parti de l'usurpation d'identité de l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn