公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

了解C#程序以管理員權限運行的實現

admin
2024年10月20日 23:16 本文熱度 1048

前言

自 Windows Vista  開始,系統就增加了UAC(用戶賬戶控制) 的安全機制,當 UAC 被打開,我們即使以管理員權限登錄,應用程序默認情況下也無法對系統目錄、系統注冊表等進行操作,從而提升了系統的安全性。但對我們開發的應用程序來說,程序如何以管理員的方式運行,則需開發者考慮。本文介紹了 C# 程序如何實現用戶以管理員權限運行。

實現

1、修改應程序文件的屬性

在安裝好的應用程序目錄中,右擊程序文件,選擇屬性,然后在彈出的屬性界面中找到兼容性標簽頁,勾選以管理員身份運行此程序。其實這種方式并不是開發者實現的,只是用戶根據指引調整實現。這為用戶者帶來了不少的麻煩,操作起來也不友好。

2、通過配置應用程序清單文件

在 C# 的項目上,可通過右擊項目,選擇添加,在新項中選擇應用程序清單文件(僅限Windows) 添加文件到項目中。打開文件,找到與UAC相關設置項。

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />修改為:<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

修改文件后,將清單文件添加到項目的資源中,右擊項目-->屬性-->資源-->添加資源文件(選擇app.manifest)。重新生成項目后,打開應用程序時就會提示需要以管理員權限運行。如下圖:

注意:通過配置上面方式后,我們應該使用管理員身份運行 Microsoft Visual Studio。否則提示下圖:

3、通過在程序入口編寫代碼

在應用程序入口文件 Program.cs 添加相關代碼。主要使用Process.Start 方式啟動應用程,使用此方式 ,運行程序時,也會提示以管理員身份運行,需要用戶點擊提示才以啟動程序。

using Microsoft.Win32;using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Security.Principal;using System.Threading.Tasks;using System.Windows.Forms;
namespace Fountain.WinForms.UACDemo{    internal static class Program    {        internal static ApplicationContext context = null;        /// <summary>        /// 應用程序的主入口點。        /// </summary>        [STAThread]        static void Main()        {            Application.EnableVisualStyles();            Application.SetCompatibleTextRenderingDefault(false);            if (IsRunAsAdmin())            {                // 是管理員角色,管理員權限運行                context = new ApplicationContext(new FormMain());                Application.Run(context);            }            else            {                // 使用 ProcessStartInfo 以管理員方式啟動                RunAsAdmin();                //退出                Application.Exit();            }        }        /// <summary>        /// 使用 ProcessStartInfo 以管理員方式啟動        /// </summary>        public static void RunAsAdmin()        {            ProcessStartInfo startInfo = new ProcessStartInfo();            //設置以管理員方式啟動標記            startInfo.Verb = "runas";            //使用shell啟動進程            startInfo.UseShellExecute = true;            startInfo.FileName = Process.GetCurrentProcess().MainModule.FileName;            Process.Start(startInfo);        }        /// <summary>        /// 判斷當前角色,是否為管理員權限運行        /// </summary>        /// <returns></returns>        public static bool IsRunAsAdmin()        {            // 獲取當前的windows 用戶            WindowsIdentity windowsIdentity = WindowsIdentity.GetCurrent();            // 檢查 獲取當前的windows 用戶 的 Windows 組成員身份。            WindowsPrincipal windows = new WindowsPrincipal(windowsIdentity);            // 判斷當前用戶是否是管理員            if (windows.IsInRole(WindowsBuiltInRole.Administrator))            {                return true;            }            return false;        }            }}

小結

上面三種方式,除第一種方式,不是在編寫應用程序時指定以管理員權限方式啟動的實現,但都能實現管理員權限運行應用程序的目的。在使用代碼時,我們還可增加判斷當前是否開啟UAC、判斷UAC管理員提升權限提示行為等來確認啟動管理員權限運行的提前條件。希望這些內對您有所幫助,如有不到之處,請多多包涵。如果你覺得還有其它例子歡迎留言。


該文章在 2024/10/22 12:10:40 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 丰满迷人的少妇特级毛片 | 精品视频一区二精品视频一 | 国产一区二区三区精品视频 | 3d动漫精品啪啪一区 | 国产午夜福利电影免费在线观看 | 高清欧美一区二区三区 | 国产精品乱码一区二区三区 | 91精品一区国产高清在线 | 18禁裸乳无遮挡免费网站 | 国产人一极精品视频 | 国产av无码专区亚洲aⅴ | 国产成人毛片在线视频软件 | 国产成人啪精品视频网站午夜 | 国产福利一区二区三区视频在线 | 国产成年女人特黄持色毛片免 | 国产欧美日韩综合视频专区 | 国产一区二区理论在线观看 | 国产无码传媒在线观 | 2025国产精品毛片久久 | 国产无码精品免费视频免费 | 精品无码一区二区三区土豆 | 成人国内精品久久久久影 | 国产91精彩在线观看 | 国产高清在线观看自拍 | 福利姬液液酱喷水福利18禁 | 国产末成年av在线播放 | 国产大学生无码理论永久免费 | 国产+欧美日韩+ | 国产精品成人亚洲 | 精品动漫一区二区无码视频 | 69视频在线 | av鲁丝一区鲁丝二区鲁丝 | 精品久久久久久无码专区不久久 | 国产成人精品免费青青草原 | 高清无码一区二区在线观看 | 国产高清无码在线一区二区 | 2025国内精品久久久久精品 | av制服丝袜白丝国产网站 | 国产精品一区二区免费 | 国产喷水在线观看 | 国产成人www免费人成看片 |