Compartir a través de


Introducción a la seguridad de automatización de la interfaz de usuario

Nota:

Esta documentación está pensada para desarrolladores de .NET Framework que desean usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para obtener la información más reciente sobre la automatización de la interfaz de usuario, consulte API de Windows Automation: Automatización de la interfaz de usuario.

En esta introducción se describe el modelo de seguridad de Automatización de la interfaz de usuario de Microsoft en Windows Vista.

Control de cuentas de usuario

La seguridad es un enfoque importante de Windows Vista y entre las innovaciones es la capacidad de que los usuarios se ejecuten como usuarios estándar (no administradores) sin que necesariamente se bloquee la ejecución de aplicaciones y servicios que requieren privilegios más altos.

En Windows Vista, la mayoría de las aplicaciones se proporcionan con un token estándar o administrativo. Si una aplicación no se puede identificar como una aplicación administrativa, se inicia como una aplicación estándar de forma predeterminada. Antes de que se pueda iniciar una aplicación identificada como administrativa, Windows Vista solicita al usuario que dé su consentimiento para ejecutar la aplicación como con privilegios elevados. La solicitud de consentimiento se muestra por defecto, incluso si el usuario es miembro del grupo de administradores local, ya que los administradores se ejecutan como usuarios estándar hasta que una aplicación o componente del sistema que requiere credenciales administrativas solicita permiso para ejecutarse.

Tareas que requieren privilegios mayores

Cuando un usuario intenta realizar una tarea que requiere privilegios administrativos, Windows Vista presenta un cuadro de diálogo que pide al usuario que dé su consentimiento para continuar. Este cuadro de diálogo está protegido frente a la comunicación entre procesos, de modo que el software malintencionado no pueda simular la entrada del usuario. Del mismo modo, otros procesos no pueden acceder a la pantalla de inicio de sesión de escritorio.

Los clientes de automatización de la interfaz de usuario deben comunicarse con otros procesos, algunos de ellos quizás se ejecuten en un nivel de privilegios más alto. Es posible que los clientes también necesiten acceso a los cuadros de diálogo del sistema que normalmente no son visibles para otros procesos. Por lo tanto, los clientes de automatización de la interfaz de usuario deben ser de confianza para el sistema y deben ejecutarse con privilegios especiales.

Para ser de confianza para comunicarse con las aplicaciones que se ejecutan en un nivel de privilegios superior, las aplicaciones deben firmarse.

Archivos de manifiesto

Para obtener acceso a la interfaz de usuario del sistema protegida, las aplicaciones deben compilarse con un archivo de manifiesto que incluya el uiAccess atributo en la requestedExecutionLevel etiqueta , como se indica a continuación:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="highestAvailable"
        uiAccess="true" />
    </requestedPrivileges>
  </security>
</trustInfo>

El valor del level atributo en este código es solo un ejemplo.

uiAccess es "false" de forma predeterminada; es decir, si se omite el atributo o si no hay ningún manifiesto para el ensamblado, la aplicación no podrá obtener acceso a la interfaz de usuario protegida.