本文解決了需要管理權限才能在 .NET 中啟動進程的常見問題。 所提出的解決方案利用模擬在具有所需權限的使用者帳戶下執行該流程。
以下程式碼片段示範如何使用 ImpersonationHelper 類別來實現此目的(未顯示,但假設處理必要的模擬邏輯):
<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>
此程式碼使用指定的憑證啟動一個程序。 至關重要的是,密碼是使用 SecureString
安全處理的。 請記住實施適當的錯誤處理並在使用後正確處置SecureString
。 此方法提供了一種透過利用使用者模擬來運行具有提升權限的進程的安全性方法。
以上是如何以不同使用者身分執行 .NET 進程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!