Compartir a través de


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, AcquireCredentialsHandleu 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 se pueda descifrar mediante procesos 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:

DomainName\UserName

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 de 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.

Para tarjeta inteligente o credenciales de certificado, 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 de Online.

[in] pszPassword

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

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

Para credenciales de tarjeta inteligente, este es el PIN de tarjeta inteligente.

Windows Server 2008 R2, Windows 7, Windows Server 2008 y Windows Vista: no se admiten identidades de Online.

[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 de pPackedCredentials. En la salida, si el búfer no tiene un tamaño suficiente, especifica el tamaño necesario, en bytes, del pPackedCredentials búfer.

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.

Observaciones

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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2008 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de wincred.h
biblioteca de Credui.lib
DLL de Credui.dll