Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 36267|Respuesta: 3

[WinForm] Los programas C# se ejecutan con privilegios de administrador

[Copiar enlace]
Publicado en 9/10/2016 9:14:38 | | | |
En Vista y Windows 7 y posteriores, se ha añadido un mecanismo de seguridad llamado UAC (Control de Cuenta de Usuario), y si se activa UAC, incluso si el usuario inicia sesión con privilegios de administrador, sus aplicaciones no pueden escribir en el directorio del sistema, el registro del sistema y otras configuraciones que puedan afectar por defecto al funcionamiento normal del sistema. Este mecanismo mejora enormemente la seguridad del sistema, pero para los desarrolladores de aplicaciones no podemos obligar a los usuarios a desactivar el UAC, pero a veces la aplicación que desarrollamos necesita ejecutarse como administrador, ¿cómo lograr esa función?
Así es como un programa en C# implementa la posibilidad de que el usuario ejecute con privilegios de administrador.
En este ejemplo, el programa WinForm demuestra que se genera y modifica un nuevo proyecto en consecuencia:
Método 1: Inicia vía System.Diagnostics.Process.Start():
Método de implementación: Modifica el archivo del programa generado por defecto, y el código modificado es el siguiente:
Dado que el código ya ha sido comentado, no entrará en detalles;
Efecto: Como se inicia llamando a la llamada externa de System.Diagnostics.Process.Start(), al ejecutarse directamente a través de VS, no solicitará a VS que necesite derechos de administrador, solo el propio programa necesita derechos de administrador, lo cual es diferente del programa que genera la aplicación. Esta es la principal diferencia respecto a la implementación del método 2.
Método 2: Añadiendo un archivo manifiesto de aplicación:
En el proyecto Añadir nuevo elemento, selecciona Archivo de manifiesto de la aplicación y haz clic en el botón Añadir
Una vez añadido, el archivo app.manifest se abre por defecto, lo que hará:
Modificado a:
Luego abre las Propiedades del Proyecto y modifica el Manifest en Recursos de la pestaña Aplicaciones al nuevo app.manifest.
Reconstruye el proyecto y, cuando vuelvas a abrir el programa, se te pedirá que ejecutes con privilegios de administrador.
Ten en cuenta que si empiezas a depurar en VS, se te indicará que esta tarea requiere que la aplicación tenga privilegios elevados. Como se muestra a continuación:
Selecciona Reiniciar con otras credenciales para hacerlo.
Método 3: Modificar directamente las propiedades del archivo del programa
Haz clic derecho en el archivo del programa en la pestaña de Compatibilidad en el cuadro de diálogo Propiedades que aparece
Marca "Ejecutar este programa como administrador".







Anterior:{"El elemento '_id' no coincide con ningún campo ni propiedad de clase."}
Próximo:.NET/C# 4 Formas de implementar consultas y consultas difusas en MongoDB [con código fuente]
 Propietario| Publicado en 9/10/2016 9:15:27 |
Determinar si el programa está funcionando como administrador
Es necesario añadir espacios de nombres:
usando System.Security.Principal;


 Propietario| Publicado en 26/1/2021 9:59:52 |
C# determina si un programa se está ejecutando como administrador
https://www.itsvse.com/thread-3004-1-1.html
 Propietario| Publicado en 13/10/2025 9:18:33 |
Las aplicaciones .NET Core se ejecutan como administradores en sistemas Windows, el código es el siguiente:


Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com