Ve Vista, Windows 7 a novějších byl přidán bezpečnostní mechanismus nazvaný UAC (User Account Control), a pokud je UAC zapnuto, i když se uživatel přihlásí s administrátorskými oprávněními, jeho aplikace nemohou zapisovat do systémového adresáře, systémového registru a dalších nastavení, která by mohla ovlivnit normální provoz systému ve výchozím nastavení. Tento mechanismus výrazně zvyšuje bezpečnost systému, ale pro vývojáře aplikací nemůžeme uživatele donutit vypnout UAC, ale někdy musí aplikace, kterou vyvíjíme, běžet přes administrátora, jak takovou funkci dosáhnout? Zde je, jak program v C# implementuje výzvu uživateli k provozu s administrátorskými oprávněními. V tomto příkladu program WinForm ukazuje, že je generován nový projekt a podle toho upraven: Metoda 1: Start přes System.Diagnostics.Process.Start(): Metoda implementace: Upravte programový soubor generovaný výchozím nastavením a upravený kód je následující: Jelikož byl kód již komentován, nebude zacházet do podrobností; Efekt: Protože se spouští vyvolání externího volání System.Diagnostics.Process.Start(), když běží přímo přes VS, nevyzve VS, aby potřeboval administrátorská práva, pouze program sám potřebuje administrátorská práva, což se liší od programu, který aplikaci generuje. To je hlavní rozdíl oproti implementaci metody 2. Metoda 2: Přidáním souboru manifestu žádosti: V projektu Přidat novou položku vyberte Soubor manifestu aplikace a klikněte na tlačítko Přidat Po přidání se soubor app.manifest otevře ve výchozím nastavení, což bude: Upraveno na: Poté otevřete vlastnosti projektu a upravte manifest v záložce Resources na nový app.manifest. Projekt znovu postavte a když program znovu otevřete, budete vyzváni k spuštění s administrátorskými oprávněními. Všimněte si, že pokud začnete ladit ve VS, budete vyzváni, že tato úloha vyžaduje, aby aplikace měla zvýšená oprávnění. Jak je uvedeno níže: Zvolte Restart s dalšími přihlašovacími údaji. Metoda 3: Přímo upravte vlastnosti programového souboru Klikněte pravým tlačítkem na programový soubor v záložce Kompatibilita v dialogovém okně Vlastnosti, které se objeví Zaškrtni "Spustit tento program jako správce".
|