Função CredPackAuthenticationBufferA (wincred.h)
A função CredPackAuthenticationBuffer converte um nome de usuário de cadeia de caracteres e uma senha em um buffer de autenticação.
A partir do Windows 8 e do 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, AcquireCredentialsHandle ou 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 |
---|---|
|
Criptografa a credencial para que ela só possa ser descriptografada por processos na sessão de logon do chamador. |
|
Criptografa a credencial em um buffer WOW. |
|
Criptografa a credencial em um buffer de CRED_GENERIC. |
|
Criptografa a credencial de uma identidade online em uma estrutura 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: Não há suporte para esse valor. |
[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:
Domainname\Username
Para identidades online, se a credencial for uma senha de texto não criptografado, 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 é a saída do parâmetro UserName de uma chamada de função para SspiEncodeAuthIdentityAsStrings.
Para credenciais de certificado ou cartão inteligentes, 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 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á na saída ppszPackedCredentialsString de uma chamada de função para SspiEncodeAuthIdentityAsStrings.
Para credenciais de cartão inteligentes, esse é o PIN de cartão inteligente.
Windows Server 2008 R2, Windows 7, Windows Server 2008 e Windows Vista: Não há suporte para identidades 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 buffer pPackedCredentials . Na saída, se o buffer não for de tamanho suficiente, especificará o tamanho necessário, em bytes, do buffer pPackedCredentials .
Valor retornado
TRUE 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 |
---|---|
|
O buffer fornecido por pPackedCredentials é muito pequeno. |
Comentários
Observação
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 de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
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] |
Plataforma de Destino | Windows |
Cabeçalho | wincred.h |
Biblioteca | Credui.lib |
DLL | Credui.dll |