AppID Key
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:
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.
|
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