.NET 程式許可權控制、獲得管理員許可權程式碼

hello_xusir發表於2016-12-01

ms升級了之後,有些時候程式無法作業系統盤的內容,因為許可權不夠。XP下也會存在這些問題,但因為XP系統預設許可權設定沒有WIN 7  和WIN 8 那麼嚴格,所以很少遇到因為許可權問題導致程式執行失敗的情況。以下程式碼是表示如何獲得管理員許可權執行程式。

static void Main(string[] Args)

{

/**

* 當前使用者是管理員的時候,直接啟動應用程式

* 如果不是管理員,則使用啟動物件啟動程式,以確保使用管理員身份執行

*/

//獲得當前登入的Windows使用者標識

System.Security.Principal. WindowsIdentity identity = System.Security.Principal.WindowsIdentity .GetCurrent();

// 建立Windows 使用者主題

System.Security.Principal. WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal (identity);

//判斷當前登入使用者是否為管理員

if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))

{

//如果是管理員,則直接執行

Application.EnableVisualStyles();

Application.Run(new Form1());

}

else

{

//建立啟動物件

System.Diagnostics. ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo ();

//設定執行檔案

startInfo.FileName = System.Windows.Forms. Application.ExecutablePath;

//設定啟動引數

startInfo.Arguments = String.Join(" " , Args);

//設定啟動動作,確保以管理員身份執行

startInfo.Verb = "runas";

//如果不是管理員,則啟動 UAC

System.Diagnostics. Process.Start(startInfo);

System.Windows.Forms. Application.Exit();

}

相關文章