Como exibir o prompt do UAC para salvar arquivos em locais restritos usando c #?

Quando um usuário salva um arquivo do meu aplicativo, ele não pode salvar em locais restritos (como C :). Acho que esta é uma boa restrição, mas gostaria de fornecer um prompt do UAC para elevar privilégios e permitir que um usuário salve em uma área restrita.

Eu vi muitas respostas em torno deste tópico que envolvem a criação de um novo processo com privilégios elevados usando 'runas'. Além disso, parece que isso pode ser feito representando outro usuário. Pelo que entendi, ambos os métodos exigem que um usuário forneça credenciais de usuário.

O que eu estou querendo fazer é basicamente o que o Windows faz. Quando você tenta copiar um arquivo para C: \ no Windows 7 (supondo que você tenha o UAC definido como seu nível padrão), você obtém o seguinte prompt:

Depois que você clicar no botão Continuar com o escudo do UAC, o arquivo será copiado para C: \ sem solicitação de credenciais (supondo que você esteja conectado com privilégios de administrador).

Como posso replicar esse comportamento em meu aplicativo para usuários administradores? Eles não devem ter que se passar por outro usuário porque já possuem privilégios de administrador. Alguém pode fornecer detalhes sobre o que o Windows está fazendo durante esse processo? Eles estão gerando um novo processo explorer.exe com privilégios elevados?

questionAnswers(3)

yourAnswerToTheQuestion