Programa C # Elevate en tiempo de ejecución
Tengo un programa C # en el que quiero que ciertas funciones requieran una contraseña de administrador. Para resolver esto, comencé otra instancia de la aplicación como un proceso elevado y le pasé argumentos de línea de comandos para que el proceso sepa qué tarea tiene que realizar.
Process proc = new Process();
proc.StartInfo.Arguments = "PARAMETERS HERE");
proc.StartInfo.FileName = Application.ExecutablePath;
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas";
proc.Start();
Esto funciona bien, sin embargo, tengo un pequeño problema. Acabo de notar que el mensaje de UAC que aparece para comenzar el nuevo proceso muestra no solo el nombre y la ruta de la aplicación,pero también los parámetros de la línea de comando que se le pasan. De esta forma, el usuario puede ver los parámetros que se pasan y pasar directamente los argumentos derun
comando ocommand prompt
.
Hay alguna forma de prevenir esto ? ¿O un mejor enfoque para elevar un programa en ejecución?