Partager via


CredWriteA, fonction (wincred.h)

La fonction CredWrite crée des informations d’identification ou modifie des informations d’identification existantes dans le jeu d’informations d’identification de l’utilisateur. Les nouvelles informations d’identification sont associées à la session d’ouverture de session du jeton actuel. Le jeton ne doit pas avoir désactivé l’identificateur de sécurité de l’utilisateur (SID).

Syntaxe

BOOL CredWriteA(
  [in] PCREDENTIALA Credential,
  [in] DWORD        Flags
);

Paramètres

[in] Credential

Pointeur vers la structure CREDENTIAL à écrire.

[in] Flags

Indicateurs qui contrôlent l’opération de la fonction. L’indicateur suivant est défini.

Valeur Signification
CRED_PRESERVE_CREDENTIAL_BLOB
L’objet BLOB d’informations d’identification d’une information d’identification existante est conservé avec le même nom d’informations d’identification et le même type d’informations d’identification. L'CredentialBlobSize de la structure d’informations d’identification passée doit être égale à zéro.

Valeur de retour

Si la fonction réussit, la fonction retourne TRUE.

Si la fonction échoue, elle retourne FALSE. Appelez la fonction GetLastError pour obtenir un code d’état plus spécifique. Les codes d’état suivants peuvent être retournés.

D’autres erreurs de carte à puce peuvent être retournées lors de l’écriture d’informations d’identification CRED_TYPE_CERTIFICATE.

Retourner le code/la valeur Description
ERROR_NO_SUCH_LOGON_SESSION
La session d’ouverture de session n’existe pas ou il n’existe aucun jeu d’informations d’identification associé à cette session d’ouverture de session. Les sessions d’ouverture de session réseau n’ont pas d’ensemble d’informations d’identification associées.
ERROR_INVALID_PARAMETER
Certains champs ne peuvent pas être modifiés dans des informations d’identification existantes. Cette erreur est retournée si un champ ne correspond pas à la valeur d’un champ protégé des informations d’identification existantes.
ERROR_INVALID_FLAGS
Une valeur non valide a été spécifiée pour le paramètre Flags.
ERROR_BAD_USERNAME
Le membre UserName du d’informations d’identification transmis n’est pas valide. Pour obtenir une description de la syntaxe de nom d’utilisateur valide, consultez la définition de ce membre.
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOB a été spécifié et il n’existe pas d’informations d’identification existantes par le même TargetName et Type.
SCARD_E_NO_READERS_AVAILABLE
L’CRED_TYPE_CERTIFICATE informations d’identification écrites nécessite que le lecteur de carte à puce soit disponible.
SCARD_E_NO_SMARTCARD ou SCARD_W_REMOVED_CARD
Une CRED_TYPE_CERTIFICATE informations d’identification écrites nécessite l’insertion de la carte à puce.
SCARD_W_WRONG_CHV
Le code confidentiel incorrect a été fourni pour l’CRED_TYPE_CERTIFICATE informations d’identification écrites.

Remarques

Cette fonction crée des informations d’identification si des informations d’identification avec l'TargetName spécifié et Type n’existe pas. Si des informations d’identification avec le TargetName spécifié et Type existe, les nouvelles informations d’identification spécifiées remplacent celle existante.

Lorsque cette fonction écrit des informations d’identification CRED_TYPE_CERTIFICATE, l'd’informations d’identification -membre CredentialBlob spécifie le code confidentiel protégeant la clé privée du certificat spécifié par l'd’informations d’identification -membre UserName. Le gestionnaire d’informations d’identification ne conserve pas le code confidentiel. Au lieu de cela, le code confidentiel est transmis au fournisseur de services de chiffrement (CSP) indiqué sur le certificat pour une utilisation ultérieure par le fournisseur csp et les packages d’authentification. Le fournisseur csp définit la durée de vie du code confidentiel. La plupart des fournisseurs de services cloud vident le code confidentiel lorsque la carte à puce est supprimée du lecteur de carte à puce.

Si la valeur du Type membre de la structure d' CREDENTIAL spécifiée par le paramètre Credential est CRED_TYPE_DOMAIN_EXTENDED, un espace de noms doit être spécifié dans le nom cible. Cette fonction ne prend pas en charge l’écriture dans les noms cibles qui contiennent des caractères génériques.

Note

L’en-tête wincred.h définit CredWrite comme 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. Le mélange 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête wincred.h
bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

informations d’identification