Compartilhar via


AppID Key

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa chave grupos opções de configuração, um conjunto de nomeado valores, para um ou mais distribuído objetos COM em uma localidade centralizado no Registro. Para simplificar o gerenciamento de comum configurações de segurança e configuração, os objetos DCOM hospedado pelo executável mesmo é agrupado em um AppID. O HKEY_LOCAL_MACHINE\SOFTWARE\Classes corresponde à chave de HKEY_CLASSES_ROOT chave, que foi mantido para compatibilidade com versões anteriores do COM. O valor AppID é armazenado sob a seguinte chave Registro:

{HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\AppID_value}\named_value = valor

AppIDs estão localizados em uma hierarquia chave do Registro recém-criado. O AppID_value é um 128-bit Globally Unique Identifier (GUID) que identifica o AppID chave.

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

  • Classes indicam o correspondente AppID Sob a CLSID chave em um nomeado-valor "AppID" do tipo REG_SZ. Isso contém o valor da seqüência de caracteres correspondente para o AppID_value Sob a AppID chave. Esse mapeamento é usado durante ativação.
  • Arquivos executáveis são registrados na AppID chave em um nomeado valor indicando o nome módulo (such as "MYOLDAPP.EXE"). Este nomeado valor é do tipo REG_SZ e contém o representação de seqüência de caracteres do AppID associado com o arquivo executável. Esse mapeamento é usado para obter as permissões acessar usar como padrão e nível de autenticação.

Para servidores COM, o mapeamento é normalmente gerado e gravado para o Registro durante o processo registro ou quando execução Dcomcnfg.exe. No entanto, os clientes COM que desejar definir a segurança usando a chave AppID deve criar apropriado chaves Registro e especificar o exigido mapeamento por chamado Win32 Registro funções ou usando Regedit. Em seguida, valores, como AccessPermissions Ou AuthenticationLevel Pode ser definida para o cliente. De exemplo, se o nome de seu executável para o processo cliente for "YourClient.exe" e você desejar definir o nível de autenticação para nenhum; Use Guidgen.exe ou Uuidgen.exe para criar o GUID que é o AppID para o executável. Em seguida, você definiria valores no Registro conforme o seguinte exemplo de código, onde 00000001 representa um nível de autenticação de nenhum:

[REGEDIT4] 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\yourclient.exe] 
@="YourClient" 
"AppID"="{YourGuid}" 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{YourGuid}] 
@="YourClient" 
"AuthenticationLevel"=dword:00000001 

Observação

O AuthenticationLevel nomeado valor é apenas a versão completa do COM. com suporte

A seguinte tabela mostra o nomeado valores para o HKEY_LOCAL_MACHINE\SOFTWARE\Classes\APPID\ {AppID_value} chave.

Valor : tipo Descrição

RemoteServerName

Um servidor pode instalar o RemoteServerName nomeado-valor em computadores cliente para configurar o cliente para solicitação de objeto ser executar em uma máquina específica sempre que uma função ativação é chamado para o qual um COSERVERINFO estrutura não foi especificada.

Um dos parâmetros do distribuído ativação COM é um ponteiro para um COSERVERINFO estrutura. Quando esse valor não é NULL, as informações na COSERVERINFO estrutura substitui a configuração do RemoteServerName chave para chamar a função.

RemoteServerName Permite que gerenciamento de configuração simples do cliente aplicativos – elas podem ser gravadas sem disco rígido - codificado nomes servidor e pode ser configurado, modificando o RemoteServerName Valores Registro das classes de objetos que eles usam.

ActivateAtStorage

O ActivateAtStorage funcionalidade fornece um transparente maneira para permitir que os clientes para localizar execução objetos sobre a mesma máquina como os dados por eles utilizados. Isso reduz tráfego de rede, pois o objeto executa local arquivo-chamadas sistema em vez de chamadas entre a rede.

Servidores podem instalar este nomeado-valor em computadores cliente. Quando esse valor não é substituído por determinados parâmetros passados para distribuído funções ativação API COM, o ActivateAtStorage nomeado-valor configura o cliente para objetos criar instância na mesma máquina como o estado persistente que eles estão usando ou do qual eles são inicializados.

O ActivateAtStorage nomeado-valor pode ser definida pelo servidor para configurar o cliente para criar instância seus objetos sobre a mesma máquina como o estado persistente usada ou do qual os objetos são inicializados. O valor é um REG_SZ; Qualquer valor começando com "Y" ou "y" significa que ActivageAtStorage Deve ser usado.

Quando um valor é definido para ActivateAtStorage, isso se torna o comportamento usar como padrão em chamadas para o CoGetInstanceFromFile e CoGetInstanceFromIStorage funções, as well as to a implementação moniker arquivo de IMoniker::BindToObject.

Em todas essas chamadas, especificando um COSERVERINFO estrutura substitui a configuração de ActivateAtStorage Para a duração de chamar a função. O chamador pode transmitir informações COSERVERINFO para IMoniker::BindToObject Através de BIND_OPTS2 estrutura.

O valor definido para ActivateAtStorage Também é o comportamento usar como padrão quando CLSCTX_REMOTE_SERVER for especificada se há informações Registro para a classe estiver instaladas em máquina do cliente. Aplicativos cliente escritos para tirar proveito dos ActivateAtStorage Portanto, podem exigir menos administração.

LaunchPermission : REG_BINARY

Contém dados que descrevem a Lista de Controle de Acesso (ACL) dos objetos de que podem iniciar novos servidores para esta classe. O LaunchPermission nomeado-valor pode ser adicionado, em qualquer AppID chave, a ativação limite por remoto clientes das classes específicas.

Ao receber um local ou remoto solicitação para iniciar o servidor dessa classe, o ACL descrito pela LaunchPermission valor é verificado ao representar o cliente e o seu sucesso tanto Permite ou proíbe a inicialização do servidor. Se esse valor não existir, a máquina DefaultLaunchPermission valor é verificado da mesma maneira como um usar como padrão para determinar se a codificar classe pode ser iniciado.

AccessPermission : REG_BINARY

Contém dados que descrevem a Lista de Controle de Acesso (ACL) dos objetos de que podem acessar instâncias desta classe. Esta ACL só é usada por aplicativos que não chamar CoInitializeSecurity.

Este nomeado-valor é um REG_BINARY. Ele contém dados que descrevem a Lista de Controle de Acesso (ACL) dos objetos de que podem acessar instâncias desta classe. Ao receber uma solicitação para conectar a um objeto existente dessa classe, o ACL é verificada pelo aplicativo sendo chamado ao representar o chamador. Se a acessar-verificar falhar, a conexão não é permitido. Se este nomeado-valor não existir, a máquina DefaultAccessPermission ACL é testado de maneira idêntica (veja acima) como um usar como padrão para determinar se a conexão deve ser permitidos.

DllSurrogate

Permite que servidores DLL para executar em um processo substituto. Se um seqüência vazia for especificada, o substituto System-supplied é usado; caso contrário que o valor especifica o caminho do substituto para ser usado.

HKEY_CLASSES_ROOT é equivalente a MACHINE\SOFTWARE\Classes HKEY_LOCAL. Essas chaves podem ser usadas de forma intercambiável. HKEY_CLASSES_ROOT also provides compatibility with Microsoft® Windows 3.1 and Windows 95.

O DllSurrogate nomeado valor especifica que a classe é um DLL que deve ser ativado em um processo executável substituto e o processo substituto para ser usado. O surrogate_valor caminho é do tipo REG_SZ. Para usar o genérico System-supplied processo substituto, definido surrogate_caminho para um seqüência vazia ou NULL. Para especificar outro processo substituto, definido surrogate_caminho para o caminho do substituto. Como na especificação do caminho de um servidor EXE sob a LocalServer32 chave, uma especificação caminho completo não é necessária. O substituto EXE deve ser gravado para corretamente se comunicar com o DCOM.

O DllSurrogate nomeado valor deve estar presente para um servidor DLL para ser ativado em um substituto. A ativação se refere a um chamar para CoGetClassObject, CoCreateInstance, CoCreateInstanceEx, CoGetInstanceFromFile, CoGetInstanceFromIStorage, ou IMoniker::BindToObject. Servidores DLL podem ser gravados usando padrão ferramentas desenvolvimento, como Microsoft Visual Basic® e Microsoft Visual Studio®. Executando as DLLs em um processo substituto oferece as vantagens de uma implementação executável, inclusive isolamento falha, a capacidade servir múltiplo clientes simultaneamente e permitindo que o servidor para fornecer serviços para remoto clientes em um ambiente distribuído.

AuthenticationLevel : REG_DWORD

Define o nível de autenticação para todos os aplicativos que não chamar CoInitializeSecurity Ou para aplicativos que chamar CoInitializeSecurity e especificar um AppID. O AuthenticationLevel valor é semelhante de LegacyAuthenticationLevel valor. Se a pasta AuthenticationLevel valor estiver presente, ele será usado em vez da LegacyAuthenticationLevel valor para que AppID.

Valores corresponder para o RPC_C_AUTHN_LEVEL_xxxConstantes. O seguinte valores são válido:

  • 1 = RPC_C_AUTHN_LEVEL_NONE
  • 2 = RPC_C_AUTHN_LEVEL_CONNECT
  • 3 = RPC_C_AUTHN_LEVEL_CALL
  • 4 = RPC_C_AUTHN_LEVEL_PKT
  • 5 = RPC_C_AUTHN_LEVEL_PKT_INTEGRITY
  • 6 = RPC_C_AUTHN_LEVEL_PKT_PRIVACY

Se a pasta AuthenticationLevel valor é do tipo errado ou out of intervalo, CoInitializeSecurity falharão, causando empacotamento interface falhe. Este será evitar o aplicativo de fazer qualquer chama at All (Cross-apartment, cruzado-segmento, cruzado - processo, ou cruzado - máquina).

O AuthenticationLevel e AccessPermission Os valores sob o AppID são independentes. Se um não estiver presente, o usar como padrão será usado. A seguinte lista as regras a interação entre o AuthenticationLevel valor e o AccessPermission valor.

  • Se a pasta AuthenticationLevel é NONE, o AccessPermission e DefaultAccessPermission Os valores são ignorados (para esse aplicativo).
  • Se a pasta AuthenticationLevel não está presente e o LegacyAuthenticationLevel é NONE, o AccessPermission e DefaultAccessPermission Os valores são ignorados (para esse aplicativo).

See Also

Concepts

COM and DCOM Registry Settings
COM and DCOM Security

Other Resources

Component Services (COM and DCOM)
Enhancing the Security of a Device