Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 36267|Odpověď: 3

[WinForm] C# programy běžící s administrátorskými oprávněními

[Kopírovat odkaz]
Zveřejněno 09.10.2016 9:14:38 | | | |
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".







Předchozí:{"Prvek '_id' neodpovídá žádnému poli ani vlastnosti třídy."}
Další:.NET/C# 4 způsoby, jak implementovat MongoDB dotazy a fuzzy dotazy [se zdrojovým kódem]
 Pronajímatel| Zveřejněno 09.10.2016 9:15:27 |
Zjistit, zda program běží jako správce
Je třeba přidat jmenné prostory:
pomocí System.Security.Principal;


 Pronajímatel| Zveřejněno 26.01.2021 9:59:52 |
C# určuje, zda program běží jako správce
https://www.itsvse.com/thread-3004-1-1.html
 Pronajímatel| Zveřejněno 13.10.2025 9:18:33 |
Aplikace .NET Core běží jako administrátory na systémech Windows, kód je následující:


Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com