Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 36267|Отговор: 3

[WinForm] C# програмите работят с администраторски права

[Копирай линк]
Публикувано в 9.10.2016 г. 9:14:38 ч. | | | |
Във 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, който се появява
Отметнете "Стартирай тази програма като администратор".







Предишен:{"Елемент '_id' не съвпада с нито едно поле или свойство на клас."}
Следващ:.NET/C# 4 начина за реализиране на MongoDB заявки и неясни заявки [с изходен код]

Свързани публикации

 Хазяин| Публикувано в 9.10.2016 г. 9:15:27 ч. |
Определете дали програмата работи като администратор
Трябва да се добавят именни пространства:
използвайки System.Security.Principal;


 Хазяин| Публикувано в 26.01.2021 г. 9:59:52 ч. |
C# определя дали дадена програма работи като администратор
https://www.itsvse.com/thread-3004-1-1.html
 Хазяин| Публикувано в 13.10.2025 г. 9:18:33 ч. |
.NET Core приложенията работят като администратори на Windows системи, кодът е следният:


Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com