2011-07-28 23 views
7

Estoy buscando la forma correcta de permitir privilegios de elevación para las operaciones seleccionadas.¿Cómo implementar correctamente "Como administrador" o "Ejecutar como administrador" en la aplicación .NET para las operaciones seleccionadas?

Algo similar ofrecen muchos productos.

Por ejemplo, si tiene UAC activado y está utilizando Total Commander (que se ejecuta con privilegios básicos) al navegar por carpetas restringidas obtendrá:

enter image description here

Si se presiona As Administrator obtendrá usuario común El cuadro de diálogo Control de acceso le pregunta si desea otorgarle los permisos requeridos al proceso. ¿Es posible algo similar en la aplicación .NET (incluso con soporte para Win32)?

  1. ¿Cómo debería ser dicha funcionalidad correctamente implementada?
  2. ¿Necesito ejecutar un proceso externo para obtener privilegios elevados solo para la funcionalidad seleccionada?

No estoy buscando una solución que exija ejecutar el proceso principal como administrador.

+1

El token (estándar o administrador) se asigna al inicio del proceso, por lo que necesita un proceso por separado. Es un proceso que se inicia o un servidor COM fuera de proc. –

Respuesta

4

Deberá factorizar la funcionalidad de operación de destino en un componente separado que se ejecutará elevado. Esto puede ser un ejecutable que requiere elevación o un componente COM (que podría ser un contenedor COM para un componente .NET). Los detalles están disponibles en http://msdn.microsoft.com/en-us/library/bb756990.aspx, siendo el When to Add the Shield Icon to Your Application's User Interface particularmente pertinente.

+0

Si no recuerdo mal, en una aplicación .Net, no puede usar un componente .Net como un objeto com, incluso si está expuesto a COM. –

Cuestiones relacionadas