본문으로 바로가기

[C#] 관리자 권한으로 실행하기

category 프로그램/C# 2019/01/10 11:03
해당 작업은 Program.cs 에서 작업을 합니다.


using System.Security.Principal;
using System.Diagnostics;




        /// <summary>
        /// 관리자 권한 체크 
        /// </summary>
        /// <returns></returns>
        public static bool IsAdministrator()
        {
            WindowsIdentity identity = WindowsIdentity.GetCurrent();

            if (null != identity)
            {
                WindowsPrincipal principal = new WindowsPrincipal(identity);
                return principal.IsInRole(WindowsBuiltInRole.Administrator);
            }

            return false;
        }



메인 실행전에 관리자 권한으로 실행 하도록 하면 됩니다.


        [STAThread]
        static void Main()
        {
                if (IsAdministrator() == false)
                {
                    try
                    {
                        ProcessStartInfo procInfo = new ProcessStartInfo();
                        procInfo.UseShellExecute = true;
                        procInfo.FileName = Application.ExecutablePath;
                        procInfo.WorkingDirectory = Environment.CurrentDirectory;
                        procInfo.Verb = "runas";
                        Process.Start(procInfo);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message.ToString());
                    }

                    return;
                }

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new MainForm());
        }



위 방법으로로 처리 할 수 있지만 다른 방법도 있습니다.

사용자 삽입 이미지

프로그램  속성에서 보안의 "ClickOnce"를 선택합니다.

사용자 삽입 이미지


그러면은 위 처럼 "app.mainfest"가 생기게 됩니다.
※ 이방법을 할 경우에는 프로그램에 아이콘에 방패 모양이 생기게 됩니다.
사용자 삽입 이미지


원래 기본값이 "asInvoker' 세팅된 부분을 "requireAdministrator" 로 변경하면 됩니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

트랙백

http://trudy.kr/trackback/173

댓글을 달아 주세요

Trudy
Trudy 님의 블로그
MENU
VISITOR 오늘472 / 전체418609