Cuando un usuario guarda un archivo de mi aplicación, actualmente no puede guardarlo en ubicaciones restringidas (como C :). Creo que esta es una buena restricción, pero me gustaría proporcionar un aviso de UAC para elevar los privilegios y permitir que un usuario guarde en un área restringida.¿Cómo visualizar el aviso de UAC para guardar el archivo en una ubicación restringida usando C#?
He visto muchas respuestas sobre este tema que implican engendrar un nuevo proceso con privilegios elevados usando 'runas'. Además, parece que esto se puede hacer al suplantar a otro usuario. Por lo que entiendo, ambos métodos requieren que el usuario proporcione credenciales de usuario.
Lo que quiero hacer es básicamente lo que hace Windows. Cuando intenta copiar un archivo en C: \ en Windows 7 (suponiendo que tienes UAC ajustado a su nivel predeterminado), se obtiene el siguiente mensaje:
vez que haga clic en el botón Continuar con el escudo de UAC, el archivo se copia a C: \ sin 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 de administrador? No deberían tener que suplantar a 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?
Algunos inspiración: http://stackoverflow.com/questions/573086/how-to-elevate-privileges-only-when-required –