관리자 권한이 없는 상태에서 시스템의 정보를 읽거나 쓰려고 할때 프로그램이 올바르게 작동하지 않습니다. 이럴때 프로그램이 실행되면서, 관리자 권한으로 상승시키는 것이 필요한데요. C#에서 이러한 내용에 대한 코드를 정리합니다. 모든 코드는 Program.cs에서 이루어집니다. 먼저 using 절에 다음과 같은 네임스페이스를 추가합니다.
using System.Security.Principal; using System.Diagnostics; |
그리고 현재 관리자 권한 상태인지의 여부를 파악하는 함수를 추가합니다.
public static bool IsAdministrator() { WindowsIdentity identity = WindowsIdentity.GetCurrent(); if (null != identity) { WindowsPrincipal principal = new WindowsPrincipal(identity); return principal.IsInRole(WindowsBuiltInRole.Administrator); } return false; } |
Program.cs 파일의 Main 함수의 시작 부분에 다음의 코드를 추가하여 관리자 권한으로 실행되는지를 확인 한다.
if (IsAdministrator() == false) { try { ProcessStartInfo procInfo = new ProcessStartInfo(); procInfo.UseShellExecute = true; procInfo.FileName = “IPSwitcher”; procInfo.WorkingDirectory = Environment.CurrentDirectory; procInfo.Verb = “runas”; Process.Start(procInfo); } catch (Exception ex) { Console.WriteLine(“This Program need to Administrator Authority:” + ex.Message); } return;
}
|
댓글