Visão geral de segurança da automação de interface do usuário

Observação

Esta documentação destina-se a desenvolvedores de .NET Framework que querem usar as classes da Automação da Interface do Usuário gerenciadas definidas no namespace System.Windows.Automation. Para obter as informações mais recentes sobre a Automação da Interface do Usuário, confira API de Automação do Windows: Automação da Interface do Usuário.

Esta visão geral descreve o modelo de segurança da Automação da Interface do Usuário da Microsoft no Windows Vista.

Controle de Conta de Usuário

A segurança é um dos principais focos do Windows Vista e entre as inovações está a capacidade de os usuários executarem como usuários padrão (não administradores) sem necessariamente serem impedidos de executar aplicativos e serviços que exigem privilégios mais altos.

No Windows Vista, a maioria dos aplicativos é fornecida com um token padrão ou administrativo. Se um aplicativo não puder ser identificado como um aplicativo administrativo, ele será iniciado como um aplicativo padrão por padrão. Antes que um aplicativo identificado como administrativo possa ser iniciado, o Windows Vista solicita ao usuário o consentimento para executar o aplicativo como elevado. O prompt de consentimento é exibido por padrão, mesmo que o usuário seja membro do grupo de administradores locais, pois os administradores são executados como usuários padrão até que um aplicativo ou componente do sistema que exija permissão de solicitações de credenciais administrativas para execução.

Tarefas que exigem privilégios mais elevados

Quando um usuário tenta executar uma tarefa que requer privilégios administrativos, o Windows Vista apresenta uma caixa de diálogo solicitando o consentimento para prosseguir. Essa caixa de diálogo é protegida contra comunicação entre processos, para que o software mal-intencionado não possa simular a entrada de usuário. Da mesma forma, a tela de logon da área de trabalho normalmente não pode ser acessada por outros processos.

Os clientes da automação da interface do usuário devem se comunicar com outros processos, alguns deles talvez em execução em um nível maior de privilégio. Os clientes também podem precisar de acesso às caixas de diálogo do sistema que normalmente não são visíveis para outros processos. Portanto, os clientes da automação da interface do usuário devem ser confiáveis pelo sistema e devem ser executados com privilégios especiais.

Para ser confiável para se comunicar com aplicativos em execução em um nível maior de privilégio, os aplicativos devem ser assinados.

Arquivos de manifesto

Para obter acesso à interface do usuário do sistema protegido, os aplicativos devem ser criados com um arquivo de manifesto que inclua o atributo uiAccess na tag requestedExecutionLevel, da seguinte maneira:

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

O valor do atributo level neste código é apenas um exemplo.

uiAccess é "false" por padrão; ou seja, se o atributo for omitido ou se não houver nenhum manifesto para o assembly, o aplicativo não poderá obter acesso à interface do usuário protegida.