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

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

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

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

UAC Prompt

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

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

Ответы на вопрос(3)

Ваш ответ на вопрос