El usuario final que tiene en sus manos nuestra aplicación (así recién salida del horno de nuestro cerebro), y con SO Windows 7 o superior, puede darle permisos de ejecución para que se ejecute como administrador. Pero seamos francos... no podemos depender de lo que haga un usuario (así se lo expliquemos con plastilina).
Para crear una aplicación que siempre se ejecute con permisos de administrador, esto es lo que hay que hacer en nuestro código:
1) Crear el archivo de manifiesto. En El sitio de MSDN hay un tutorial muy claro de cómo generar este archivo (y un poco largo para ser sinceros). Resumiendo: En Propiedades del proyecto, ingresamos en la pestaña de "Aplicación" y pulsamos el botón de "Ver configuración de Windows". Esto generará un archivo automáticamente llamado app.manifiest
2) Modificando el archivo app.manifiest. Abrimos el archivo recién generado y cambiamos la configuración de requestedExecutionLevel. Debe quedar con la siguiente sintaxis: <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
En el archivo generado, hay varias opciones de ejemplo de lo que podemos hacer en cuanto a seguridad se trata, pero para nuestro objetivo de éste artículo pondremos el recien mencionado.
Esto es solo la mitad de la solución. Porque el usuario, puede desde modificar sus permisos administrativos sobre cada aplicación y declarar nuestra aplicación como no apta para ser ejecutada con rol administrativo. Entonces es necesario hacer una validación a nivel de código:
En VB.NET:
Imports System.Security.Principal
If myPrincipal.IsInRole(WindowsBuiltInRole.Administrator) = false Then
MsgBox ("Requiere permisos administrativos para ejecutar esta aplicación")
End If
En C#.NET:
using System.Security.Principal;
If (myPrincipal.IsInRole(WindowsBuiltInRole.Administrator) == false) {
MsgBox ("Requiere permisos administrativos para ejecutar esta aplicación");
}
No hay comentarios:
Publicar un comentario