¿Cómo mostrar un mensaje de UAC para guardar archivos en una ubicación restringida usando c #?

Cuando un usuario guarda un archivo desde mi aplicación, actualmente no puede guardar en ubicaciones restringidas (como C :). Creo que esta es una buena restricción, pero me gustaría proporcionar una solicitud de UAC para elevar los privilegios y permitir que un usuario guarde en un área restringida.

He visto muchas respuestas sobre este tema que involucran generar un nuevo proceso con privilegios elevados usando 'runas'. Además, parece que esto se puede hacer suplantando a otro usuario. Por lo que entiendo, ambos métodos requieren que un usuario proporcione credenciales de usuario.

Lo que quiero hacer es básicamente lo que Windows hace. Cuando intenta copiar un archivo a C: \ en Windows 7 (asumiendo que tiene el UAC configurado en su nivel predeterminado), obtiene el siguiente mensaje:

Una vez que haga clic en el botón Continuar con el escudo de UAC, el archivo se copia en C: \ sin ninguna solicitud de credenciales (suponiendo que haya iniciado sesión con privilegios de administrador).

¿Cómo puedo replicar este comportamiento en mi aplicación para usuarios administradores? No deberían tener que hacerse pasar por ningún otro usuario porque ya tienen privilegios de administrador. ¿Alguien puede proporcionar detalles sobre lo que Windows está haciendo durante este proceso? ¿Están generando un nuevo proceso explorer.exe con privilegios elevados?

Respuestas a la pregunta(3)

Su respuesta a la pregunta