Artikel ini membincangkan isu biasa yang memerlukan keistimewaan pentadbiran untuk memulakan proses dalam .NET. Penyelesaian yang dibentangkan menggunakan penyamaran untuk melaksanakan proses di bawah akaun pengguna dengan kebenaran yang diperlukan.
Coretan kod berikut menunjukkan cara untuk mencapai ini menggunakan kelas ImpersonationHelper (tidak ditunjukkan, tetapi diandaikan untuk mengendalikan logik penyamaran yang diperlukan):
<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>
Kod ini memulakan proses menggunakan kelayakan yang ditentukan. Yang penting, kata laluan dikendalikan dengan selamat menggunakan SecureString
. Ingat untuk melaksanakan pengendalian ralat yang sesuai dan buang SecureString
dengan betul selepas digunakan. Kaedah ini menyediakan cara selamat untuk menjalankan proses dengan keistimewaan yang tinggi dengan memanfaatkan penyamaran pengguna.
Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Proses .NET sebagai Pengguna Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!