2013-04-20 24 views
0

當程序執行時,是否可以爲程序的特定部分/片段授予管理權限?
我知道我們可以使用清單文件給我們的整個應用程序的管理權限,但我不喜歡這樣,因爲假設70%〜80%的應用程序服務不需要管理權限,或者我的最終用戶不需要真的很想在每次運行應用程序時都面對UAC提示。
有沒有辦法達到這樣的目標?有沒有在C#中的一種方式,我可以給只有需要它的方法的管理權限?

+0

感謝多數民衆贊成在我之後;) – Breeze 2013-04-20 13:46:16

+0

我認爲這是一個服務的東西之一。 – RBarryYoung 2013-04-20 14:41:42

回答

4

執行代碼所擁有的權限是由進程令牌控制的,該進程令牌是一個進程範圍對象。因此,如果您的進程擁有提升的權限,那麼在該進程中執行的所有代碼都會提升權限。

結論是,爲了讓您的應用程序的不同部分具有不同的權限,您需要有多個進程。

這是完全通用的和標準的應用程序來做到這一點。應用程序可以以單獨的權限開始。當用戶希望執行需要提升權限的操作時,程序將調用一個單獨的可執行文件來執行該任務。這對用戶來說確實更好,因爲他們只需要面對UAC對話框來查看實際需要提升的操作。

相關問題