Share via


CredPackAuthenticationBufferA, fonction (wincred.h)

La fonction CredPackAuthenticationBuffer convertit un nom d’utilisateur et un mot de passe de chaîne en mémoire tampon d’authentification.

À compter de Windows 8 et Windows Server 2012, la fonction CredPackAuthenticationBuffer convertit les informations d’identification d’identité en mémoire tampon d’authentification, qui est une structure SEC_WINNT_AUTH_IDENTITY_EX2 . Cette mémoire tampon peut être passée à LsaLogonUser, AcquireCredentialsHandle ou à d’autres interfaces de fournisseur d’identité.

Syntaxe

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

Paramètres

[in] dwFlags

Spécifie la façon dont les informations d’identification doivent être empaquetées. Il peut s’agir d’une combinaison des indicateurs suivants.

Valeur Signification
CRED_PACK_PROTECTED_CREDENTIALS
Chiffre les informations d’identification afin qu’elles puissent être déchiffrées uniquement par les processus dans la session d’ouverture de session de l’appelant.
CRED_PACK_WOW_BUFFER
Chiffre les informations d’identification dans une mémoire tampon WOW.
CRED_PACK_GENERIC_CREDENTIALS
Chiffre les informations d’identification dans une mémoire tampon CRED_GENERIC.
CRED_PACK_ID_PROVIDER_CREDENTIALS
Chiffre les informations d’identification d’une identité en ligne dans une structure de SEC_WINNT_AUTH_IDENTITY_EX2 . Si CRED_PACK_GENERIC_CREDENTIALS et CRED_PACK_ID_PROVIDER_CREDENTIALS ne sont pas définis, chiffre les informations d’identification dans une mémoire tampon KERB_INTERACTIVE_LOGON.

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008 : Cette valeur n’est pas prise en charge.

[in] pszUserName

Pointeur vers une chaîne terminée par null qui spécifie le nom d’utilisateur à convertir. Pour les utilisateurs du domaine, la chaîne doit être au format suivant :

Domainname\Nom d'utilisateur

Pour les identités en ligne, si les informations d’identification sont un mot de passe en texte clair, le format de nom d’utilisateur est ProviderName\UserName. Si les informations d’identification sont une structure SEC_WINNT_AUTH_IDENTITY_EX2 , le nom d’utilisateur est une chaîne encodée qui est la sortie du paramètre UserName d’un appel de fonction à SspiEncodeAuthIdentityAsStrings.

Pour les informations d’identification de certificat ou de carte intelligentes, le nom d’utilisateur est une chaîne encodée qui est la sortie d’un appel de fonction à CredMarshalCredential avec l’option CertCredential.

Windows Server 2008 R2, Windows 7, Windows Server 2008 et Windows Vista : Les identités en ligne ne sont pas prises en charge.

[in] pszPassword

Pointeur vers une chaîne terminée par null qui spécifie le mot de passe à convertir.

Pour SEC_WINNT_AUTH_IDENTITY_EX2 informations d’identification, le mot de passe est une chaîne encodée qui se trouve dans la sortie ppszPackedCredentialsString d’un appel de fonction à SspiEncodeAuthIdentityAsStrings.

Pour les informations d’identification de carte intelligentes, il s’agit du code confidentiel carte intelligent.

Windows Server 2008 R2, Windows 7, Windows Server 2008 et Windows Vista : Les identités en ligne ne sont pas prises en charge.

[out] pPackedCredentials

Pointeur vers un tableau d’octets qui, à la sortie, reçoit la mémoire tampon d’authentification packée. Ce paramètre peut être NULL pour recevoir la taille de mémoire tampon requise dans le paramètre pcbPackedCredentials .

[in, out] pcbPackedCredentials

Pointeur vers une valeur DWORD qui spécifie la taille, en octets, de la mémoire tampon pPackedCredentials . En sortie, si la mémoire tampon n’est pas de taille suffisante, spécifie la taille requise, en octets, de la mémoire tampon pPackedCredentials .

Valeur retournée

TRUE si la fonction réussit ; sinon, FALSE.

Pour obtenir des informations d’erreur étendues, appelez la fonction GetLastError , qui peut retourner les codes d’erreur suivants.

Code de retour Description
ERROR_INSUFFICIENT_BUFFER
La mémoire tampon fournie par pPackedCredentials est trop petite.

Remarques

Notes

L’en-tête wincred.h définit CredPackAuthenticationBuffer en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wincred.h
Bibliothèque Credui.lib
DLL Credui.dll