簡體   English   中英

程序啟動時如何請求管理員權限?

[英]How to request administrator permissions when the program starts?

我需要我的軟件能夠在 Windows Vista 上以管理員身份運行(如果有人在沒有管理權限的情況下運行它,它會崩潰)。

在啟動其他軟件時,我看到系統提示“此軟件將以管理員身份運行。您要繼續嗎?” 當應用程序試圖獲取管理權限時。

在 Windows Vista 上運行 c# 應用程序時如何請求管理權限?

將以下內容添加到您的清單文件中:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

您也可以使用highestAvailable可用的級別。

在這里查看有關嵌入清單文件的信息:

http://msdn.microsoft.com/en-us/library/bb756929.aspx

PS:如果你沒有manifest文件,你可以很容易地添加一個新的:

在 Visual Studio 中,右鍵單擊項目 -> 添加項目 -> 選擇應用程序清單文件(在 Visual C# 項目的常規下)

添加的文件已經有了上面的部分,只需將級別從asInvoker更改為requireAdministrator

將此 XML 放入名為 yourexename.exe.manifest 的文件中:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
   <security>
     <requestedPrivileges>
        <requestedExecutionLevel level="highestAvailable" />
     </requestedPrivileges>
   </security>
</trustInfo>
</assembly>

對於.Net ( Visual Studio 2013 ),包括請求管理員提升的清單文件,並使用編譯器的/win32manifest標志,編寫並提供請求此提升的清單文件。 但是,以下描述了在 Visual Studio 中為項目名稱App.Exe

  1. 創建一個包含以下內容的文件(為方便起見,您可以將文件作為開發資源添加到 Visual Studio 項目中,方法是確保它的Build ActionNone並且Copy to Output...Do not copy 。按照慣例,清單文件被命名為在它們的輸出目標之后,在本例中App.Exe.manifest 。如果您需要uiAccess (用戶界面),則程序集必須是強命名的。

     <?xml version="1.0" encoding="utf-8" ?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <assemblyIdentity version="1.0.0.0" name="App" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> </asmv1:assembly>
  2. 編輯項目對話框的構建面板Other flags:輸入字段以添加win32manifest標志並讓 Visual Studio 相應地調用編譯器。 例如,在這種情況下,

    /win32manifest:App.Exe.manifest

請注意以下條目:

  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM