码迷,mamicode.com
首页 > 其他好文 > 详细

程序发布后,必须以管理员身份登陆

时间:2015-07-28 12:48:14      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:

    项目中打包程序,在后续更新时需要管理员身份运行,固将程序运行时,使用管理员运行。

作如下设置

1)在App.cs中增加以下代码:

技术分享
        /// <summary>
        /// 检查是否是管理员身份
        /// </summary>
        private void CheckAdministrator()
        {
            var wi = WindowsIdentity.GetCurrent();
            var wp = new WindowsPrincipal(wi);

            bool runAsAdmin = wp.IsInRole(WindowsBuiltInRole.Administrator);

            if (!runAsAdmin)
            {
                // It is not possible to launch a ClickOnce app as administrator directly,
                // so instead we launch the app as administrator in a new process.
                var processInfo = new ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase);

                // The following properties run the new process as administrator
                processInfo.UseShellExecute = true;
                processInfo.Verb = "runas";

                // Start the new process
                try
                {
                    Process.Start(processInfo);
                }
                catch (Exception ex)
                {
                    ex.WriteLog();
                }

                // Shut down the current process
                Environment.Exit(0);
            }
        }
技术分享

2)重写 OnStartup 函数 

技术分享
protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            CheckAdministrator();
//如果不是管理员,程序会直接退出。
StartupUri = new Uri("MainWindow.xaml", UriKind.RelativeOrAbsolute); }
技术分享

程序发布后,必须以管理员身份登陆

标签:

原文地址:http://www.cnblogs.com/hanjiaxu/p/4682283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!