Chave AppID

Agrupa as opções de configuração para um ou mais objetos DCOM em um local centralizado no Registro. Os objetos DCOM hospedados pelo mesmo executável são agrupados em um AppID para simplificar o gerenciamento de definições comuns de segurança e configuração.

Chave do Registro

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{AppID_GUID}

Valor do Registro Descrição
Permissão de acesso Descreve a lista de controle de acesso (ACL) das entidades de segurança que podem acessar instâncias dessa classe. Essa ACL é usada somente por aplicativos que não chamam CoInitializeSecurity.
ActivateAtStorage Configura o cliente para instanciar objetos no mesmo computador que o estado persistente que eles estão usando ou a partir do qual eles são inicializados.
AppID Identifica o GUID AppID que corresponde ao executável nomeado.
AppIDFlags Configura como um servidor COM configurado para ser executado como "Usuário Interativo" será iniciado ou vinculado por um cliente em uma área de trabalho não padrão.
Nível de autenticação Define o nível de autenticação para aplicativos que não chamam CoInitializeSecurity ou para aplicativos que chamam CoInitializeSecurity e especificam um AppID.
DllSurrogate Permite que os servidores DLL sejam executados em um processo substituto. Se uma cadeia de caracteres vazia for especificada, o substituto fornecido pelo sistema será usado; caso contrário, o valor especifica o caminho do substituto a ser usado.
DllSurrogateExecutável Permite que os servidores DLL sejam executados em um processo substituto personalizado, em conjunto com o valor do Registro DllSurrogate.
Pontos de extremidade Configura um aplicativo COM para usar um número de porta TCP especificado para comunicações DCOM.
LaunchPermission Descreve a lista de controle de acesso (ACL) das entidades de segurança que podem iniciar novos servidores para essa classe.
LoadUserSettings Determina se o COM carregará o perfil de usuário para servidores COM em execução como a identidade do aplicativo de usuário de inicialização.
LocalService Instala um objeto como um aplicativo de serviço.
PreferredServerBitness Define a arquitetura preferencial, 32 bits ou 64 bits, para este servidor COM.
RemoteServerName Configura o cliente para solicitar que o objeto seja executado em um computador específico sempre que uma função de ativação é chamada para a qual uma estrutura COSERVERINFO não é especificada.
ROTFlags Controla o registro de um servidor COM na tabela de objetos em execução (ROT).
RunAs Configura uma classe para ser executada em uma conta de usuário específica quando ativada por um cliente remoto sem ser gravada como um aplicativo de serviço.
ServiceParameters Especifica os parâmetros de linha de comando a serem passados para um objeto instalado para uso por COM por meio do valor do Registro LocalService .
SRPTrustLevel Define o nível de confiança da diretiva de restrição de software (SRP) para aplicativos.

 

Comentários

AppIDs são mapeados para executáveis e classes usando dois mecanismos diferentes:

  • Usando um GUID (Identificador Globalmente Exclusivo) de 128 bits que identifica a chave AppID . Uma classe indica seu AppID correspondente sob a chave CLSID em um valor nomeado "AppID". Esse mapeamento é usado durante a ativação.
  • Usando um valor nomeado que indica um nome executável (como "MYOLDAPP.EXE"). Esse valor nomeado é do tipo REG_SZ e contém a representação de cadeia de caracteres do AppID associado ao executável. Esse mapeamento é usado para obter as permissões de acesso padrão e o nível de autenticação.

A chave HKEY_LOCAL_MACHINE\SOFTWARE\Classes corresponde à chave HKEY_CLASSES_ROOT, que foi mantida para compatibilidade com versões anteriores do COM.

Para servidores COM, o mapeamento geralmente é gerado e gravado no registro durante o processo de registro ou ao executar o dcomcnfg.exe. No entanto, os clientes COM que desejam definir a segurança usando a chave AppID devem criar chaves do Registro apropriadas e especificar o mapeamento necessário chamando as funções do Registro ou usando Regedit.exe. Em seguida, valores como AccessPermission ou AuthenticationLevel podem ser definidos para o cliente. Por exemplo, suponha que o nome do executável para o processo do cliente seja "YourClient.exe" e você queira definir o nível de autenticação como "Nenhum". Você usaria Guidgen.exe ou Uuidgen.exe para criar o GUID que é o AppID para seu executável. Em seguida, você definiria valores no Registro, conforme mostrado no exemplo a seguir, onde 00000001 representa um nível de autenticação de "Nenhum":

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
   {MyGuid}
      AuthenticationLevel = 00000001
   MyClient.exe
      AppID = {MyGUID}