Как отобразить запрос UAC на сохранение файла в ограниченном месте с помощью c#?

Когда пользователь сохраняет файл из моего приложения, он не может сохранить его в ограниченных местах (например, C:).Я думаю, что это хорошее ограничение, но я хотел бы предоставить запрос UAC, чтобы повысить привилегии и позволить пользователю сохранять в ограниченной области.

Я видел много ответов по этой теме, которые включают в себя создание нового процесса с повышенными привилегиями с использованием 'runas'. Кроме того, кажется, что это можно сделать, выдавая себя за другого пользователя. Насколько я понимаю, оба этих метода требуют, чтобы пользователь предоставлял учетные данные пользователя.

То, что я хочу сделать, это в основном то, что делает сама Windows. При попытке скопировать файл в C:\ В Windows 7 (при условии, что У вас установлен уровень контроля учетных записей по умолчанию) вы получите следующее приглашение:

UAC Prompt

После нажатия кнопки Продолжить с экраном контроля учетных записей файл копируется в C:\ без запроса учетных данных (при условии, что вы вошли в систему с правами администратора).

Как воспроизвести это поведение в приложении для пользователей с правами администратора? Они не должны выдавать себя за любого другого пользователя, потому что у них уже есть права администратора.Может ли кто-нибудь предоставить подробную информацию о том, что Windows делает во время этого процесса? Порождают ли они новый процесс проводника.exe с повышенными привилегиями?

8
задан Joseph Tilley 24 May 2012 в 18:48
поделиться