Compartilhar via


Função CredPackAuthenticationBufferA (wincred.h)

A função CredPackAuthenticationBuffer converte um nome de usuário e uma senha de cadeia de caracteres em um buffer de autenticação.

Começando com o Windows 8 e o Windows Server 2012, a função CredPackAuthenticationBuffer converte uma credencial de identidade em um buffer de autenticação, que é uma estrutura SEC_WINNT_AUTH_IDENTITY_EX2. Esse buffer pode ser passado para LsaLogonUser, AcquireCredentialsHandleou outras interfaces do provedor de identidade.

Sintaxe

CREDUIAPI BOOL CredPackAuthenticationBufferA(
  [in]      DWORD dwFlags,
  [in]      LPSTR pszUserName,
  [in]      LPSTR pszPassword,
  [out]     PBYTE pPackedCredentials,
  [in, out] DWORD *pcbPackedCredentials
);

Parâmetros

[in] dwFlags

Especifica como a credencial deve ser empacotada. Isso pode ser uma combinação dos sinalizadores a seguir.

Valor Significado
CRED_PACK_PROTECTED_CREDENTIALS
Criptografa a credencial para que ela só possa ser descriptografada por processos na sessão de logon do chamador.
CRED_PACK_WOW_BUFFER
Criptografa a credencial em um buffer WOW.
CRED_PACK_GENERIC_CREDENTIALS
Criptografa a credencial em um buffer de CRED_GENERIC.
CRED_PACK_ID_PROVIDER_CREDENTIALS
Criptografa a credencial de uma identidade online em uma estrutura de SEC_WINNT_AUTH_IDENTITY_EX2. Se CRED_PACK_GENERIC_CREDENTIALS e CRED_PACK_ID_PROVIDER_CREDENTIALS não estiverem definidos, criptografará as credenciais em um buffer de KERB_INTERACTIVE_LOGON.

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008: Esse valor não tem suporte.

[in] pszUserName

Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome de usuário a ser convertido. Para usuários de domínio, a cadeia de caracteres deve estar no seguinte formato:

\ UserName

Para identidades online, se a credencial for uma senha de texto sem formatação, o formato de nome de usuário será ProviderName\UserName. Se a credencial for uma estrutura SEC_WINNT_AUTH_IDENTITY_EX2, o nome de usuário será uma cadeia de caracteres codificada que é o UserName saída de parâmetro de uma chamada de função para SspiEncodeAuthIdentityAsStrings.

Para de cartão inteligente ou credenciais de certificado, o nome de usuário é uma cadeia de caracteres codificada que é a saída de uma chamada de função para credMarshalCredential com a opção CertCredential.

Windows Server 2008 R2, Windows 7, Windows Server 2008 e Windows Vista: não há suporte para identidades do Online.

[in] pszPassword

Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica a senha a ser convertida.

Para SEC_WINNT_AUTH_IDENTITY_EX2 credenciais, a senha é uma cadeia de caracteres codificada que está no ppszPackedCredentialsString saída de uma chamada de função para SspiEncodeAuthIdentityAsStrings.

Para credenciais de de cartão inteligente, este é o PIN de de cartão inteligente .

Windows Server 2008 R2, Windows 7, Windows Server 2008 e Windows Vista: não há suporte para identidades do Online.

[out] pPackedCredentials

Um ponteiro para uma matriz de bytes que, na saída, recebe o buffer de autenticação empacotado. Esse parâmetro pode ser NULL para receber o tamanho do buffer necessário no parâmetro pcbPackedCredentials.

[in, out] pcbPackedCredentials

Um ponteiro para um valor DWORD que especifica o tamanho, em bytes, do pPackedCredentials buffer. Na saída, se o buffer não for de tamanho suficiente, especificará o tamanho necessário, em bytes, do pPackedCredentials buffer.

Valor de retorno

VERDADEIRO se a função for bem-sucedida; caso contrário, FALSE .

Para obter informações de erro estendidas, chame a função GetLastError, que pode retornar os seguintes códigos de erro.

Código de retorno Descrição
ERROR_INSUFFICIENT_BUFFER
O buffer fornecido por pPackedCredentials é muito pequeno.

Observações

Nota

O cabeçalho wincred.h define CredPackAuthenticationBuffer como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2008 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho wincred.h
biblioteca Credui.lib
de DLL Credui.dll