Windows Forms - C # - запросить права администратора

Возможный дубликат:
Как заставить приложение C # запускаться от имени администратора в Windows 7

Я создаю приложение WinForms C #, и мне нужно, чтобы оно запрашивало права администратора, чтобы я мог копировать и открывать каталоги в C:\.

Это возможно?

Код, который я собираюсь использовать (если он кому-то нужен), таков:

if (!Directory.Exists("C:\\smm"))
{
    Directory.Create("gg");
}

Или что-то в этом роде, но я уверен, что мне нужны права администратора.

Кто-нибудь знает, как я могу это сделать?


person user1032254    schedule 09.11.2011    source источник
comment
попробуйте это, stackoverflow .com / questions / 2021831 /   -  person Illuminati    schedule 09.11.2011
comment
stackoverflow.com/questions/2818179/, как описывает Ханс Пассант, используйте файл манифеста   -  person Rosmarine Popcorn    schedule 09.11.2011


Ответы (1)


Вам необходимо включить параметры безопасности ClickOnce в своем проекте, а затем изменить манифест приложения, чтобы потребовать права администратора. Это приведет к тому, что Windows отобразит запрос на повышение прав UAC при запуске процесса, чтобы пользователь мог передать вашу программу администратору.

Чтобы включить ClickOnce, перейдите в свойства своего проекта, выберите вкладку «Безопасность» слева, затем установите флажок «Включить параметры безопасности ClickOnce». Затем перейдите в каталог «Свойства» проекта и откройте файл app.manifest. В этом файле есть строка, которая устанавливает необходимые привилегии:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

Вы можете сделать так, чтобы для него потребовались права администратора, например:

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

Это заставит его потребовать администратора, когда процесс начнется.

person Polynomial    schedule 09.11.2011
comment
Собственно, у меня это работает, только если ClickOnce отключен. В противном случае я получаю следующую ошибку при сборке: ClickOnce does not support the request execution level 'requireAdministrator'. - person Otiel; 09.11.2011
comment
Похоже, что это так для некоторых проектов. Не уверен, что с этим делать. - person Polynomial; 09.11.2011