Vista és Windows 7 és későbbi verziókban egy UAC (User Account Control) nevű biztonsági mechanizmus került hozzá, és ha az UAC be van kapcsolva, még ha a felhasználó adminisztrátori jogosultsággal is jelentkezik be, alkalmazásai nem írhatnak a rendszerkönyvtárba, rendszerregiszterbe és más beállításokra, amelyek alapértelmezés szerint befolyásolhatják a rendszer normál működését. Ez a mechanizmus jelentősen növeli a rendszer biztonságát, de az alkalmazásfejlesztők számára nem kényszeríthetjük a felhasználókat az UAC kikapcsolására, de néha az általunk fejlesztett alkalmazásnak az adminisztrátor útján kell futnia, hogyan lehet ezt elérni? Így valósít meg egy C# program, amely arra kéri a felhasználót, hogy induljon adminisztrátori jogosultságokkal. Ebben a példában a WinForm program bemutatja, hogy egy új projektet generálnak és ennek megfelelően módosítanak: 1. módszer: Indítás a System.Diagnostics.Process.Start() segítségével: Megvalósítási módszer: Módosítsuk az alapértelmezettségben generált programfájlt, és a módosított kód a következő: Mivel a kódot már kommentálták, nem megy bele a részletekbe; Hatás: Mivel a System.Diagnostics.Process.Start() külső hívásával indul, amikor közvetlenül a VS-en keresztül fut, nem kéri a VS-nek az adminisztrátori jogokat, csak a programnak kell adminisztrátori joga, ami eltér attól, ami eltér attól, amely az alkalmazást generáló programtól. Ez a fő különbség a 2-es módszer megvalósításához képest. 2. módszer: Egy alkalmazási manifest fájl hozzáadásával: A Project Add New Item menüben válaszd ki az Alkalmazás Manifest fájlt, és kattints az Hozzáadás gombra A hozzáadás után az app.manifest fájl alapértelmezetten megnyílik, ami: Módosítva: Ezután nyisd meg a Projekt Tulajdonságokat, és módosítsd a Manifestet az Alkalmazások fül Erőforrások részén az új app.manifest-re. Újraépíted a projektet, és amikor újra megnyitod a programot, azt kérik, hogy futtass rendszergazdái jogosultságokkal. Fontos megjegyezni, hogy ha elkezded a hibakeresést a VS-ben, azt fogod feltüntetni, hogy ehhez az alkalmazásnak emelt jogosultságokkal kell rendelkeznie. Ahogy az alábbiakban látható: Válaszd ki a Restart opciót más belépőlevelekkel ehhez. 3. módszer: Közvetlenül módosítsd a programfájl tulajdonságait Jobb kattints a programfájlra a Kompatibilitás fülön a Tulajdonságok párbeszédablakban, amely felbukkan. Jelöld meg a "Futtatd ezt a programot adminisztrátorként".
|