Función CredPackAuthenticationBufferA (wincred.h)

La función CredPackAuthenticationBuffer convierte un nombre de usuario de cadena y una contraseña en un búfer de autenticación.

A partir de Windows 8 y Windows Server 2012, la función CredPackAuthenticationBuffer convierte una credencial de identidad en un búfer de autenticación, que es una estructura de SEC_WINNT_AUTH_IDENTITY_EX2 . Este búfer se puede pasar a LsaLogonUser, AcquireCredentialsHandle u otras interfaces del proveedor de identidades.

Sintaxis

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

Parámetros

[in] dwFlags

Especifica cómo se debe empaquetar la credencial. Puede ser una combinación de las marcas siguientes.

Valor Significado
CRED_PACK_PROTECTED_CREDENTIALS
Cifra la credencial para que solo los procesos puedan descifrarse en la sesión de inicio de sesión del autor de la llamada.
CRED_PACK_WOW_BUFFER
Cifra la credencial en un búfer wow.
CRED_PACK_GENERIC_CREDENTIALS
Cifra la credencial en un búfer de CRED_GENERIC.
CRED_PACK_ID_PROVIDER_CREDENTIALS
Cifra la credencial de una identidad en línea en una estructura de SEC_WINNT_AUTH_IDENTITY_EX2 . Si no se establecen CRED_PACK_GENERIC_CREDENTIALS y CRED_PACK_ID_PROVIDER_CREDENTIALS, cifra las credenciales en un búfer de KERB_INTERACTIVE_LOGON.

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008: Este valor no se admite.

[in] pszUserName

Puntero a una cadena terminada en null que especifica el nombre de usuario que se va a convertir. Para los usuarios del dominio, la cadena debe tener el formato siguiente:

Nombrededominio\Nombre de usuario

En el caso de las identidades en línea, si la credencial es una contraseña de texto no cifrado, el formato de nombre de usuario es ProviderName UserName\. Si la credencial es una estructura SEC_WINNT_AUTH_IDENTITY_EX2 , el nombre de usuario es una cadena codificada que es la salida del parámetro UserName de una llamada de función a SspiEncodeAuthIdentityAsStrings.

En el caso de las credenciales de certificado o tarjeta inteligente , el nombre de usuario es una cadena codificada que es la salida de una llamada de función a CredMarshalCredential con la opción CertCredential.

Windows Server 2008 R2, Windows 7, Windows Server 2008 y Windows Vista: No se admiten identidades en línea.

[in] pszPassword

Puntero a una cadena terminada en null que especifica la contraseña que se va a convertir.

Para SEC_WINNT_AUTH_IDENTITY_EX2 credenciales, la contraseña es una cadena codificada que se encuentra en la salida ppszPackedCredentialsString de una llamada de función a SspiEncodeAuthIdentityAsStrings.

En el caso de las credenciales de tarjeta inteligente , este es el PIN de la tarjeta inteligente .

Windows Server 2008 R2, Windows 7, Windows Server 2008 y Windows Vista: No se admiten identidades en línea.

[out] pPackedCredentials

Puntero a una matriz de bytes que, en la salida, recibe el búfer de autenticación empaquetado. Este parámetro puede ser NULL para recibir el tamaño de búfer necesario en el parámetro pcbPackedCredentials .

[in, out] pcbPackedCredentials

Puntero a un valor DWORD que especifica el tamaño, en bytes, del búfer pPackedCredentials . En la salida, si el búfer no tiene un tamaño suficiente, especifica el tamaño necesario, en bytes, del búfer pPackedCredentials .

Valor devuelto

TRUE si la función se realiza correctamente; de lo contrario, FALSE.

Para obtener información de error extendida, llame a la función GetLastError , que puede devolver los siguientes códigos de error.

Código devuelto Descripción
ERROR_INSUFFICIENT_BUFFER
El búfer proporcionado por pPackedCredentials es demasiado pequeño.

Comentarios

Nota

El encabezado wincred.h define CredPackAuthenticationBuffer como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wincred.h
Library Credui.lib
Archivo DLL Credui.dll