Chave AppID
Agrupa as opções de configuração de um ou mais objetos DCOM em um local centralizado no Registro. Objetos DCOM hospedados pelo mesmo executável são agrupados em um AppID para simplificar o gerenciamento de configurações comuns de segurança e configuração.
Chave do Registro
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{AppID_GUID}
Valor do Registro | Descrição |
---|---|
AccessPermission | Descreve a ACL (Lista de Controle de Acesso) das entidades de segurança que podem acessar instâncias dessa classe. Essa ACL é usada apenas 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 do qual são inicializados. |
appID | Identifica o GUID do AppID que corresponde ao executável nomeado. |
appIDFlags | Configura como um servidor COM configurado para ser executado como o "Usuário Interativo" será iniciado ou associado a um cliente em uma área de trabalho não padrão. |
AuthenticationLevel | 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 alternativo. 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. |
DllSurrogateExecutable | Permite que os servidores DLL sejam executados em um processo alternativo personalizado, juntamente com o DllSurrogate valor do Registro. |
pontos de extremidade | Configura um aplicativo COM para usar um número de porta TCP especificado para comunicações DCOM. |
LaunchPermission | Descreve a ACL (Lista de Controle de Acesso) 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 inicial. |
LocalService | Instala um objeto como um aplicativo de serviço. |
PreferredServerBitness | Define a arquitetura preferencial, de 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 deCOSERVERINFOnão é especificada. |
rotflags | Controla o registro de um servidor COM na ROT (tabela de objetos em execução). |
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 pelo COM por meio do LocalService valor do registro. |
SRPTrustLevel | Define o nível de confiança da SRP (política de restrição de software) para aplicativos. |
Observações
Os AppIDs são mapeados para executáveis e classes usando dois mecanismos diferentes:
- Usando um GUID (Identificador Global exclusivo) de 128 bits que identifica a AppID chave. Uma classe indica seu AppID correspondente sob a chaveCLSIDem 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 da AppID associada 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 dcomcnfg.exe. No entanto, os clientes COM que desejam definir a segurança usando a chave AppID devem criar chaves de 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 seu executável para o processo de 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 o executável. Em seguida, você definiria valores no registro, conforme mostrado no exemplo a seguir, em que 00000001 representa um nível de autenticação de "Nenhum":
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
{MyGuid}
AuthenticationLevel = 00000001
MyClient.exe
AppID = {MyGUID}