我們知道,在Windows Vista ,微軟系列作業系統中加入了“UAC”權限控制。這是一個顯著的安全性能的提升。
在這以後的系統中軟體預設使用普通使用者方式運作,除非軟體聲明要求使用管理者方式運作,或者使用者強制使用管理者方式運作。
那麼我們在做一些敏感功能的時候,比如結束程序、讀寫記憶體、更改系統檔案、更改系統設定等操作的時候,就需要提供管理者權限,否則無法擷取對象。這時就需要我們手動的,顯式的聲明程式需要管理者權限運作。那麼,我們又如何做到呢?
這裡引用微軟MSDN的說法:
右鍵你的工程,建立一個mainfest(應用程式清單)檔案, <!-- UAC 清單選項 如果要更改 Windows 使用者帳戶控制級别,請用以下節點之一替換 requestedExecutionLevel 節點。 <requestedExecutionLevel level="asInvoker" uiAccess="false" /> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> 指定 requestedExecutionLevel 節點将會禁用檔案和系統資料庫虛拟化。 如果要利用檔案和系統資料庫虛拟化實作向後 相容性,則删除 requestedExecutionLevel 節點。 --> 将 <requestedExecutionLevel level="asInvoker" uiAccess="false" />設定為requireAdministrator後,儲存運作。當程式需要管理者權限時,就會提示使用者是否允許。
這個是一種方法,還有另外一個方法,是我經常用的。這個需要寫在Program.cs裡面。
本文轉自 OH51888 51CTO部落格,原文連結:http://blog.51cto.com/rozbo/1298086,如需轉載請自行聯系原作者