Windows 7 – Legyen az alkalmazásunk UAC Ready
A Start Solution innen tölthető le.
A User Account Control, az az újdonság, ami a Vista megjelenésével került a köztudatba. Sokan nem szeretik, sokan kikapcsolják, de el kell ismerni, ez egy hasznos újítás, és a Windows 7 esetében már sokkal okosabb is, mint eddig volt. Nem kérdezget annyit és felhasználó barátiabb is. Az UAC feladata, hogy a felhasználót megvédje a saját illetve a környezet butaságaitól. Olykor elég agresszív módon védi a felhasználót, de tudni kell, hogy a Windows felhasználók közel 80-90% rendszergazdai módban használja a számítógépét. Így teljes hozzáférése van a rendszer felett, tehát a felhasználó mindent megtehet a rendszerén, így az alkalmazások is ugyan azzal a jogosultságokkal rendelkeznek (nagy többségük) mint a felhasználó. Tehát az alkalmazásoknak is korlátlan hatalmuk van ilyenkor a rendszer felet, így ha rosszindulatú program akkor törölhet, pusztíthat szaporodhat stb. De az UAC-al egyfajta virtuális homokozóban játszik a felhasználó. Rendszergazdaként viselkedik ugyan, de ahhoz, hogy például a C meghajtón vagy a registryben, valamit kontárkodjon meg kell erősíteni, hogy valóban ő az és valóban ő akarja azt a műveletet elvégezni. Ez az, ami olykor idegesítő lehet, de bizony-bizony a laikus felhasználó számára hasznos lehet ez a védvonal. A fejlesztőknek meg immár külön gondoskodni kell arról, hogy az UAC véletlenül se állítsa le az alkalmazást hozzáférés megtagadva hibával.
Például az alkalmazásunk, ami a C meghajtóra írna és nincs elindítva rendszergazdaként súlyos kivételeket dobhat, amit ha nem kezelünk le, akkor el is szállhat. De mi definiálhatjuk az alkalmazás számára, hogy márpedig ő csak adminisztrátor módban futhat, így elkerülve az esetleges problémákat. Ebben az esetben az alkalmazás indulásakor az UAC felugrik és könyörtelenül kérdezi a felhasználót, hogy biztos, hogy el akarja-e indítani. Ilyenkor nem kell a jobb egérgomb Run as Administrator -os kattintgatás, hanem rögtön úgy is akar indulni az alkalmazás. De nézzük meg, hogy mely lépéseket kell elkövetnünk ahhoz, hogy UAC Ready legyen az alkalmazás.
1. A Solution Explorerben válasszuk ki és nyissuk meg az app.manifest állományt
2. Ekkor az alábbi XML fog minket fogadni.
Látható, hogy az előzőekben hozzáadott dependency element is része a manifest fájlnak, de azt most hagyjuk figyelmen kívül, és koncentráljunk a trustInfo elementre.
</asmv1:assembly> |
1. A requestedExecutionLevel elment level tulajdonságát kell állítanunk ahhoz, hogy célunkat elérjük. De figyeljük meg, hogy a kikommentezett részben a level tulajdonság lehetséges értékei találhatók.
· asInvoker: A program pontosan olyan jogosultságokkal fog futni, mint az őt meghívó, elindító program, folyamat
· requireAdministrator: Csak rendszergazdaként fut és rendszergazdai jogokért kér megerősítést.
· highestAvailable: A program az elérhető, lehető legmagasabb felhasználói jogosultságért kér megerősítést.
2. Alapértelmezés szerint asInvoker beállítást használja. Ezt írjuk át a requireAdministrator –ra.
3. Innentől kezdve, amikor indítanánk az alkalmazást akkor az UAC ablak automatikusan fel fog jönni. (Ne a Visual Studiobol indítsuk az alkalmazást, hogy kipróbáljuk)