Във Vista и Windows 7 и по-нови е добавен механизъм за сигурност, наречен UAC (User Account Control), и ако UAC е включен, дори ако потребителят влезе с администраторски права, приложенията му не могат да записват в системната директория, системния регистър и други настройки, които по подразбиране могат да повлияят на нормалната работа на системата. Този механизъм значително повишава сигурността на системата, но за разработчиците на приложения не можем да принудим потребителите да изключат UAC, но понякога приложението, което разработваме, трябва да работи по начин на администратор, как да се постигне такава функция? Ето как една C# програма реализира подканването на потребителя да стартира с администраторски права. В този пример програмата WinForm демонстрира, че нов проект се генерира и модифицира съответно: Метод 1: Стартиране чрез System.Diagnostics.Process.Start(): Метод на изпълнение: Модифицирайте програмния файл, генериран по подразбиране, и модифицираният код е следният: Тъй като кодът вече е коментиран, няма да навлиза в подробности; Ефект: Тъй като се стартира чрез извикване на външното извикване на System.Diagnostics.Process.Start(), при изпълнение директно през VS няма да поиска администраторски права, а само самата програма се нуждае от администраторски права, което е различно от програмата, която генерира приложението. Това е основната разлика от реализацията на метод 2. Метод 2: Чрез добавяне на файл с манифест на приложението: В Project Add New Item изберете Application Manifest File и натиснете бутона Add След добавяне, файлът app.manifest се отваря по подразбиране, което ще: Модифицирано на: След това отворете Project Properties и модифицирайте Manifest в Resources в таба Applications към новия app.manifest. Възстановете проекта и когато отворите програмата отново, ще бъдете подканени да стартирате с администраторски права. Имайте предвид, че ако започнете дебъгване във VS, ще ви бъде предложено, че тази задача изисква приложението да има повишени права. Както е показано по-долу: Изберете Restart с други данни за удостоверение, за да го направите. Метод 3: Модифициране на свойствата на програмния файл директно Кликнете с десен бутон върху програмния файл в таба Съвместимост в диалоговия прозорец Properties, който се появява Отметнете "Стартирай тази програма като администратор".
|