IClientSecurity::SetBlanket
9/8/2008
Este método define a informações sobre autenticação que será usado para fazer chamadas no proxy especificado. Isso substitui as configurações usar como padrão processo para o proxy especificado.
Chamar esse método altera os valores de segurança para todos os outros usuários o proxy especificado.
Syntax
HRESULT SetBlanket(
IUnknown* pProxy,
DWORD dwAuthnSvc,
DWORD dwAuthzSvc,
OLECHAR* pServerPrincName,
DWORD dwAuthnLevel,
DWORD dwImpLevel,
RPC_AUTH_IDENTITY_HANDLE pAuthInfo,
DWORD dwCapabilities
);
Parameters
- pProxy
[no] Indica o proxy interface definir.
dwAuthnSvc
[no] Um único valor DWORD da lista de RPC_C_AUTHN_XXX Constantes indicando o serviço autenticação para usar.Ele pode ser RPC_C_AUTHN_NONE se nenhuma autenticação é exigido.
Se RPC_C_AUTHN_DEFAULT for especificada, COM será escolher um seguinte serviço autenticação seu padrão Security blanket negociação algoritmo.
dwAuthzSvc
[no] Um único valor DWORD da lista de RPC_C_AUTHZ_XXX Constantes indicando o serviço autorização para usar.Se RPC_C_AUTHZ_DEFAULT for especificada, COM será escolher um seguinte serviço autorização seu padrão Security blanket negociação algoritmo.
Se você estiver usando RPC_C_AUTHN_WINNT, use RPC_C_AUTHZ_NONE.
pServerPrincName
[no] Ponteiro para uma seqüência de caracteres WCHAR que indica o principal servidor nome a ser usado com o serviço autenticação.Se COLE_DEFAULT_PRINCIPAL for especificada, COM será escolher um principal seguinte nome seu padrão Security blanket negociação algoritmo.
dwAuthnLevel
[no] Um único valor DWORD da lista de RPC_C_AUTHN_LEVEL_XXX Constantes indicando o nível de autenticação para usar.Se RPC_C_AUTHN_LEVEL_DEFAULT for especificada, COM será escolher um nível de autenticação seguinte seu padrão Security blanket negociação algoritmo.
Se esse valor for definido para RPC_C_AUTHN_LEVEL_NONE, o serviço autenticação deve ser RPC_C_AUTHN_NONE. Cada serviço autenticação pode escolher para usar um mais Seguro nível de autenticação daquele especificado.
dwImpLevel
[no] Um único valor DWORD da lista de RPC_C_IMP_LEVEL_XXX Constantes que indica a representação nível para usar.Se RPC_C_IMP_LEVEL_DEFAULT for especificada, COM será escolher uma representação nível seguinte seu padrão Security blanket negociação algoritmo.
Se você estiver usando NTLMSSP remotamente, este valor deve ser RPC_C_IMP_LEVEL_IMPERSONATE ou RPC_C_IMP_LEVEL_IDENTIFY.
Ao usar NTLMSSP sobre a mesma máquina, RPC_C_IMP_LEVEL_DELEGATE é também com suporte.
Para Kerberos, esse valor pode ser RPC_C_IMP_LEVEL_IDENTIFY, RPC_C_IMP_LEVEL_IMPERSONATE ou RPC_C_IMP_LEVEL_DELEGATE.
pAuthInfo
[no] Um valor RPC_AUTH_IDENTITY_HANDLE que indica a identidade do cliente.Este parâmetro não é usado para chamadas sobre a mesma máquina.
Se pAuthInfo é NULL, COM usa o atual identidade proxy (que está token de processo, o símbolo de representação ou a identidade de autenticação CoInitializeSecurity).
Se o identificador não for NULL, que identidade é usada. O formato da estrutura referida pelo identificador depende de como o provedor de serviço de autenticação.
Para NTLMSSP ou Kerberos, a estrutura é uma SEC_WINNT_AUTH_IDENTITY_W estrutura. O cliente deve garantir que a memória apontada por esse parâmetro permanecerá válido e inalterado até uma identidade diferente é configurar o proxy ou até que todos os proxies sobre o objeto são liberados.
Quando usar Snego, este parâmetro serão NULL ou um ponteiro para um SEC_WINNT_AUTH_IDENTITY_EXW estrutura.
Se NULL, Snego será escolher uma lista dos serviços para tentar autenticação com base nesses disponível na máquina cliente.
Se não-NULL, o PackageList membro da estrutura deve apontar para uma lista dos nomes serviço autenticação Comma-Separated.
Se PackageList é NULL, todas as chamadas usando Snego falhará. O PackageListLength membro indica o número de bytes na PackageList seqüência de caracteres.
Se COLE_DEFAULT_AUTHINFO for especificada, COM será escolher a informações sobre autenticação seguinte seu padrão Security blanket negociação algoritmo.
SetBlanket Retornará um erro se ambas as pAuthInfo está definida e um do disfarce sinalizadores são definidos no dwCapabilities.
dwCapabilities
[no] Uma DWORD Definindo sinalizadores que especificar as capacidades desse proxy.Capacidade sinalizadores são definidos na enumeração EOLE_AUTHENTICATION_CAPABILITIES.
EOAC_NONE indica que nenhuma funcionalidade sinalizadores são definidos.
EOAC_MUTUAL_AUTH é aceito, mas não tem nenhum efeito.
EOAC_DEFAULT COM será significa escolher os recursos usando seu padrão Security blanket negociação algoritmo.
EOAC_STATIC_CLOAKING ou EOAC_DYNAMIC_CLOAKING pode ser definido se pAuthInfo não foi definida. (Consulte Cloaking para obter mais informações).
Se qualquer funcionalidade sinalizadores diferente aqueles mencionados aqui são indicados, SetBlanket Retornará um erro.
Return Value
- S_OK
O sucesso.
- E_INVALIDARG
Um ou mais argumentos é inválido.
Remarks
IClientSecurity::SetBlanket Define o informações sobre autenticação que será usado para fazer chamadas no proxy a interface especificada. Os valores especificados aqui substituir os valores escolhidos pela segurança automática.
Chamar esse método altera os valores de segurança para todos os outros usuários o proxy especificado.
Se você desejar que as alterações aplicar somente a uma instância específica de um proxy, chamar IClientSecurity::CopyProxy Para fazer um copiar particular do proxy e, em seguida, chamar SetBlanket Sobre a copiar.
Quando esse método for chamado, DCOM irá definir a identidade sobre o proxy e futuras chamadas feitas usando esse proxy usará essa identidade. Chama em andamento quando SetBlanket é chamado irá usar o informações sobre autenticação em de proxy, o tempo de chamar foi iniciado.
Se pAuthInfo é NULL, a identidade proxy padrão é o atual processo token (a menos que uma identidade autenticação foi especificada em um chamar para CoInitializeSecurity). Consulte a seção Cloaking para ver como o disfarce sinalizadores afetam o proxy quando pAuthInfo é NULL.
Por padrão, COM será escolher a primeira disponível serviço autenticação e autorização serviço disponível, tanto as máquinas cliente e servidor o principal nome que o servidor registrado para esse serviço autenticação. Atualmente, COM não tentará outro serviço autenticação se a primeira falha.
Quando a constante usar como padrão para dwImpLevel é especificado na SetBlanket, o parâmetro padrão é o valor especificado para CoInitializeSecurity. Se CoInitializeSecurity Não é chamado, ele padrão é RPC_C_IMP_LEVEL_IDENTIFY.
O valor inicial para dwAuthnLevel Em um proxy será o mais alto do valor definido na chamar do cliente para CoInitializeSecurity e chamar do o servidor para CoInitializeSecurity. Para qualquer processo que não chamar CoInitializeSecurity, o nível de autenticação usar como padrão é RPC_C_AUTHN_CONNECT.
O usar como padrão autenticação e representação nível para processos que não chamar CoInitializeSecurity Pode ser definida com o Dcomcnfg.
Se EOAC_DEFAULT for especificada para dwCapabilities, o válido capacidades de CoInitializeSecurity será usado. Se CoInitializeSecurity não foi chamado, EOAC_NONE será usado para o sinalizador recursos.
Se SetBlanket é chamado simultaneamente em dois segmentos no mesmo proxy, somente um conjunto de alterações serão aplicados. Se SetBlanket e CRpcOptions::Set São chamado simultaneamente em dois segmentos no mesmo proxy, ambas as alterações podem ser aplicadas ou apenas um pode ser aplicado.
Não é possível definir informações de segurança local interfaces, como o IClientSecurity interface. Essa interface é somente com suporte localmente. IUnknown e IMultiQI são casos especiais. Torna a implementação localidade remoto chamadas ao suporte essas interfaces. SetBlanket Pode ser usado para IUnknown. IMultiQI usará as configurações de segurança em IUnknown.
A alteração uma SetBlanket parâmetro sem precisar lidar com as outras, uma possível especificar as constantes usar como padrão para os outros parâmetros. Para exemplo, em Windows 2000, o serviço autenticação geralmente será NTLMSSP na máquina local proxies e Kerberos na máquina remoto proxies.
Os aplicativos podem alteração um parâmetro (such as o nível de autenticação) e ignorar os outros parâmetros, incluindo o serviço autenticação, por configuração todos os outros parâmetros para as constantes usar como padrão.
É importante definir não usado todos os parâmetros para as constantes usar como padrão porque o valor usar como padrão geralmente não é óbvio. Em particular, se você definir o serviço autenticação para o usar como padrão, você deve definir o nome informações sobre autenticação e principal para o usar como padrão. Os motivos para isso são dois:
- O tipo do informações sobre autenticação depende de como o serviço autenticação que escolhe DCOM.
- Porque DCOM precisa para transmitir alguns informações sobre autenticação complexos de determinados autenticação Serviços, se você definir o serviço autenticação para usar como padrão e o informações sobre autenticação para NULL, você poderá get uma configuração de segurança que não irá trabalho.
Para determinar se a plataforma oferece suporte a esta interface, consulte Determinando suporte COM APIs.
Requirements
Header | objidl.h, objidl.idl |
Library | ole32.lib, uuid.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |