Cloaking (Serviços de componentes)
Há dois ingredientes na determinação do comportamento da representação: a autoridade que o cliente concede explicitamente ao servidor por meio de um nível de representação e a capacidade do servidor de mascarar sua própria identidade ao fazer chamadas em nome do cliente. Esta última capacidade é conhecida como cloaking. O encobrimento tem a ver com a identidade de segurança sob a qual o servidor faz chamadas.
Quando o servidor representa o cliente, ele tem acesso direto às credenciais de segurança do cliente. Em um sentido muito local, o thread do servidor assume a identidade do cliente. Mas quando o servidor faz chamadas fora de seu processo, a identidade do cliente não será necessariamente projetada como a identidade sob a qual a chamada é feita.
Quando a ocultação está habilitada, as chamadas feitas pelo servidor que representa o cliente podem ser feitas sob a identidade do cliente. Quando o cloaking estiver desabilitado, as chamadas pelo servidor serão feitas sob a identidade do servidor.
Além disso, existem duas formas de camuflagem, a camuflagem estática e a camuflagem dinâmica, que podem ser descritas da seguinte forma:
- Falsificação de identidade com camuflagem estática. A identidade original do cliente (realizada como o token de thread do servidor) pode ser apresentada uma vez a um servidor downstream em uma chamada usando CoSetProxyBlanket, definindo a identidade original do cliente uma vez no proxy, e esse token de thread será usado em chamadas de método subsequentes.
- Falsificação de identidade com camuflagem dinâmica. A identidade original do cliente é descoberta como o token de thread do servidor em cada chamada de método para o servidor downstream. Com efeito, a identidade que é apresentada pode ser determinada dinamicamente. A sobrecarga necessária para fazer isso pode ser consideravelmente mais cara.
Para aplicativos COM+, a configuração padrão é para o recurso de camuflagem dinâmica. Isso pode ser alterado programaticamente e administrativamente. Embora o encobrimento dinâmico possa ter sobrecarga de desempenho, ele fornece a flexibilidade que geralmente é exigida por circunstâncias que exigem o uso de representação em primeiro lugar.
Para obter mais detalhes sobre cloaking e descrições precisas de possíveis comportamentos, consulte Cloaking na documentação COM.