2014-04-01 15 views
5

我在Visual Studio 2013中有一個WPF項目,這個項目有兩個按鈕。第一個按鈕表示啓動服務,第二個表示停止服務。 當我以管理員身份運行我的Visual Studio時,這些按鈕正常工作。但是,當我打開我的Visual Studio沒有特權時,出現InvalidOperationException異常。如何在Visual Studio 2013中強制我的項目始終以管理員身份運行?

如何強制我的項目開始privillges時,Visual Studio不以管理員身份運行?

我加app.manifest到我的項目,改變爲

水平= 「requireAdministrator」 uiAccess = 「假」/>

但它沒有的功能。

對於啓動或停止我的服務,我使用ServiceController。

+1

的可能重複[?如何強制我的C#的WinForms任何計算機上以管理員身份運行程序(http://stackoverflow.com/questions/3598824/how在任何計算機上執行以管理員身份運行的程序) – Dmitry

+0

此解決方案不適用於我的系統。 – CampDev

+0

您的評論不能解決您的問題。 –

回答

2

這是有趣的,看來你需要改變的是如何在項目運行權限,試着做以下

  • 去項目屬性>安全
  • 啓用點擊一次的安全設置,並選擇完全信任應用

更多的Infor在這個環節 WPF security

5

至於托爾文中號。Philippsen提到在他article

  • 在Visual Studio 2010(我猜這同樣適用於VS2008,但我 沒有測試過),右鍵點擊你的項目,並選擇「添加新項」
  • 添加應用程序清單文件 - 默認名稱將是app.manifest。
  • 裏面的清單文件,現有的配置從

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

    改爲

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
    
  • 保存並關閉清單文件。

  • 請注意您的清單文件不會出現在解決方案的任何位置。爲了解決這個問題,在解決方案資源管理器中,點擊「顯示所有文件」按鈕。
  • 重要提示:右鍵單擊清單文件並將其添加到項目中 - 我們需要它來告訴VS在編譯我們的應用程序時使用清單文件。
  • 右鍵單擊您的項目並選擇「屬性」。
  • 在應用程序選項卡,在底部區域中,選擇清單文件:

Selecting manifest file

清單文件選擇

  • 編譯並運行應用程序。如果您的UAC設置已啓用,系統將提示您允許應用程序以提升模式啓動。

  • 有時它可以派上用場,檢查您的應用程序是否實際運行在提升模式下。也許你會發現這個codesnippet有用:

    WindowsPrincipal myPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); 
    if (myPrincipal.IsInRole(WindowsBuiltInRole.Administrator) == false) 
    { 
        //show messagebox - displaying a messange to the user that rights are missing 
        MessageBox.Show("You need to run the application using the \"run as administrator\" option", "administrator right required", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
    } 
    else 
    { 
        MessageBox.Show("You are good to go - application running in elevated mode", "Good job" ,MessageBoxButtons.OK, MessageBoxIcon.Information); 
    } 
    
相關問題