Compartilhar via


estrutura CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION (credentialprovider.h)

Contém detalhes sobre uma credencial.

Sintaxe

typedef struct _CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION {
  ULONG ulAuthenticationPackage;
  GUID  clsidCredentialProvider;
  ULONG cbSerialization;
  byte  *rgbSerialization;
} CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION;

Membros

ulAuthenticationPackage

Tipo: ULONG

O identificador exclusivo do pacote de autenticação. Esse parâmetro é necessário ao chamar LsaLogonUser. Em um cenário de interface do usuário de credencial, esse valor é definido antes que uma serialização seja enviada por meio de SetSerialization. Isso é o mesmo que o valor do pacote de autenticação retornado por LsaLookupAuthenticationPackage. Os provedores de conteúdo podem usar esse parâmetro para determinar se podem retornar credenciais para esse pacote de autenticação. Os desenvolvedores que escrevem seu próprio pacote de autenticação podem fornecer seu próprio valor.

clsidCredentialProvider

Tipo: GUID

O CLSID do provedor de credenciais. Os provedores de credenciais atribuem seu próprio CLSID a esse membro durante a serialização. A interface do usuário de credencial ignora esse membro.

cbSerialization

Tipo: ULONG

O tamanho, em bytes, da credencial apontada por rgbSerialization.

rgbSerialization

Tipo: byte*

Uma matriz de bytes que contém informações de credencial serializadas. O formato exato desses dados depende do pacote de autenticação direcionado por um provedor de credenciais.

Comentários

Depois que o usuário inserir informações de credencial em um bloco de credenciais, ele precisará ser colocado em um buffer. O empacotamento dessas informações é chamado de serialização e é necessário independentemente de o cenário usar uma interface do usuário de logon ou uma interface do usuário de credencial. O CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION define a estrutura para serialização. Após a serialização, o local em que o buffer é enviado depende se ele é uma interface do usuário de logon ou um cenário de interface do usuário de credencial. Com uma interface do usuário de Logon, o buffer é passado para o Winlogon. No cenário da interface do usuário de credencial, esse buffer é retornado para o aplicativo de chamada que o usa para autenticar o usuário.

Importante  

Mesmo que você esteja implementando uma CREDENTIAL_PROVIDER_USAGE_SCENARIO de CPUS_LOGON, não chame diretamente LsaLogonUser. Essa chamada é tratada pelo sistema. Você só precisa passar suas credenciais para o Winlogon.

 
Os provedores de credenciais também poderão enumerar um bloco de credencial se uma credencial de entrada for recebida de SetSerialization. Um exemplo em que isso é útil é se um usuário fornece uma combinação de senha de usuário inválida. A interface do usuário de credencial passará as credenciais de volta para o provedor de credenciais, pois elas são inválidas. O provedor de credenciais pode optar por exibir um bloco para o usuário que já tem o nome de usuário preenchido.

As credenciais de entrada podem ter várias formas diferentes. É importante que os provedores de credenciais sejam robustos ao receber credenciais serializadas. Isso pode incluir credenciais incompletas ou parciais. Em muitos casos, uma credencial de entrada incompleta é uma dica sobre qual tipo de credencial o chamador deseja. Um caso em que esse processo é usado é com chamadores que só desejam coletar credenciais de cartão inteligentes do usuário. Durante o cenário de uso CPUS_LOGON , o sistema usa SetSerialization para preencher algumas das informações de um computador remoto. A interface do usuário de logon chamará SetSerialization zero ou uma vez a cada ciclo de enumeração.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho credentialprovider.h