Jak oznaczyć aplikację w C# tak by uruchamiała się jako administrator (C# UAC i Elevated rights)

28-sty-2011

Jeżeli na Windows 7 lub Vista aplikacja ma do wykonania systemowe zadanie to może wymagać podniesionych uprawnień (elevated rights).

Aby aplikacji pisanej w Visual Studio 2008 wskazać, że musi się uruchamiać z podniesionymi uprawnieniami należy do projektu dodać plik manifestu. Plik dodajesz jako nowy obiekt w Solution Explorerze. Wybierasz więc Add –> New –> Application Manifest File.

Ten domyślny plik manifestu nie definuje jeszcze aplkikacji, jako wymagającej podniesionych uprawnień. Odszukaj linię:

<requestedExecutionLevellevel=asInvokeruiAccess=false />

i zmień ją na następujacą:

<requestedExecutionLevel level=requireAdministratoruiAccess=false />

Od tej powy aplikacja uruchamiana na systemie z włączonym User Access Control (UAC) zapyta najpierw o pozwolenie i uruchomi się wyłącznie po podniesieniu uprawnień na administracyjne.

Zobacz też: http://www.mobilo24.eu/c-uruchamianie-aplikacji-jako-administrator/

Komentarze:

  1. Szukacz błędów napisał,

    Error 1 ClickOnce does not support the request execution level 'requireAdministrator’. = błąd !

  2. Rafał Kraik napisał,

    ClickOnce to technologia pozwalająca na szybkie uruchomienie aplikacji i jej instalację ze strony Web (http://en.wikipedia.org/wiki/ClickOnce). Techologia ta nie jest zgodna z requireAdministrator. Podobno, chociaż tego nie sprawdzałem, można naprawić ten błąd dokonując zmian w pliku projektu, usuwając linijkę z
    Include=”SomeFile_TemporaryKey.pfx”
    Źródło opisujące tę metodę znajdziesz tutaj: http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/abd9d2b5-dca1-45c5-8636-e2f0ce963986/

  3. Mobilo » Blog Archive » C# Uruchamianie aplikacji jako Administrator napisał,

    […] Już raz opisywałem ten temat w http://www.mobilo24.eu/jak-oznaczyc-aplikacje-w-c-tak-by-uruchamiala-sie-jako-administrator-c-uac-i-… […]

Autor: Rafał Kraik