Partager via


Structure CREDENTIALA (wincred.h)

La structure CREDENTIAL contient des informations d’identification individuelles.

Syntaxe

typedef struct _CREDENTIALA {
  DWORD                  Flags;
  DWORD                  Type;
  LPSTR                  TargetName;
  LPSTR                  Comment;
  FILETIME               LastWritten;
  DWORD                  CredentialBlobSize;
  LPBYTE                 CredentialBlob;
  DWORD                  Persist;
  DWORD                  AttributeCount;
  PCREDENTIAL_ATTRIBUTEA Attributes;
  LPSTR                  TargetAlias;
  LPSTR                  UserName;
} CREDENTIALA, *PCREDENTIALA;

Membres

Flags

Membre de bits qui identifie les caractéristiques des informations d’identification. Les bits non définis doivent être initialisés sous la forme zéro et ne doivent pas être modifiés pour permettre une amélioration ultérieure.

Valeur Signification
CRED_FLAGS_PROMPT_NOW
2 (0x2)
Bit défini si les informations d’identification ne conservent pas credentialBlob et que les informations d’identification n’ont pas été écrites pendant cette session d’ouverture de session. Ce bit est ignoré lors de l’entrée et est défini automatiquement lorsqu’il est interrogé.

Si Type est CRED_TYPE_DOMAIN_CERTIFICATE, credentialBlob n’est pas conservé entre les sessions d’ouverture de session, car le code confidentiel d’un certificat est des informations très sensibles. En effet, lorsque les informations d’identification sont écrites dans le gestionnaire d’informations d’identification, le code confidentiel est transmis au fournisseur de solutions Cloud associé au certificat. Le fournisseur de solutions Cloud applique une stratégie de rétention de code confidentiel appropriée au certificat.

Si Type est CRED_TYPE_DOMAIN_PASSWORD ou CRED_TYPE_DOMAIN_CERTIFICATE, un package d’authentification échoue toujours lors de l’utilisation d’informations d’identification marquées comme CRED_FLAGS_PROMPT_NOW. L’application (généralement via l’interface utilisateur de l’anneau de clés) invite l’utilisateur à entrer le mot de passe. L’application enregistre les informations d’identification et retente l’authentification. Étant donné que les informations d’identification ont été écrites récemment, le package d’authentification obtient désormais des informations d’identification qui ne sont pas marquées comme CRED_FLAGS_PROMPT_NOW.

CRED_FLAGS_USERNAME_TARGET
4 (0x4)
Bit est défini si ces informations d’identification ont un membre TargetName défini sur la même valeur que le membre UserName . Ces informations d’identification sont conçues pour stocker les informations d’identification d’un utilisateur spécifique. Pour plus d’informations, consultez la fonction CredMarshalCredential .

Ce bit ne peut être spécifié que si Type est CRED_TYPE_DOMAIN_PASSWORD ou CRED_TYPE_DOMAIN_CERTIFICATE.

Type

Type des informations d’identification. Impossible de modifier ce membre une fois les informations d’identification créées. Les valeurs suivantes sont valides.

Valeur Signification
CRED_TYPE_GENERIC
1 (0x1)
Les informations d’identification sont des informations d’identification génériques. Les informations d’identification ne seront utilisées par aucun package d’authentification particulier. Les informations d’identification sont stockées en toute sécurité, mais n’ont pas d’autres caractéristiques significatives.
CRED_TYPE_DOMAIN_PASSWORD
2 (0x2)
Les informations d’identification sont des informations d’identification de mot de passe spécifiques aux packages d’authentification de Microsoft. Les packages d’authentification NTLM, Kerberos et Negotiate utilisent automatiquement ces informations d’identification lors de la connexion à la cible nommée.
CRED_TYPE_DOMAIN_CERTIFICATE
3 (0x3)
Les informations d’identification sont des informations d’identification de certificat spécifiques aux packages d’authentification de Microsoft. Les packages d’authentification Kerberos, Negotiate et Schannel utilisent automatiquement ces informations d’identification lors de la connexion à la cible nommée.
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD
4 (0x4)
Cette valeur n’est plus prise en charge.

Windows Server 2003 et Windows XP : Les informations d’identification sont des informations d’identification de mot de passe et sont spécifiques aux packages d’authentification de Microsoft. Le package d’authentification Passport utilise automatiquement ces informations d’identification lors de la connexion à la cible nommée.

Des valeurs supplémentaires seront définies à l’avenir. Les applications doivent être écrites pour autoriser les types d’informations d’identification qu’elles ne comprennent pas.

CRED_TYPE_GENERIC_CERTIFICATE
5 (0x5)
Les informations d’identification sont des informations d’identification de certificat qui sont un package d’authentification générique.

Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.

CRED_TYPE_DOMAIN_EXTENDED
6 (0x6)
Les informations d’identification sont prises en charge par les packages Negotiate étendus.

Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.

CRED_TYPE_MAXIMUM
7 (0x7)
Nombre maximal de types d’informations d’identification pris en charge.

Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.

CRED_TYPE_MAXIMUM_EX
CRED_TYPE_MAXIMUM+1000
Nombre maximal étendu de types d’informations d’identification pris en charge qui permettent désormais aux nouvelles applications de s’exécuter sur des systèmes d’exploitation plus anciens.

Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.

TargetName

Nom des informations d'identification. Les membres TargetName et Type identifient de manière unique les informations d’identification. Impossible de modifier ce membre une fois les informations d’identification créées. Au lieu de cela, les informations d’identification portant l’ancien nom doivent être supprimées et les informations d’identification avec le nouveau nom doivent être créées.

Si Type est CRED_TYPE_DOMAIN_PASSWORD ou CRED_TYPE_DOMAIN_CERTIFICATE, ce membre identifie le ou les serveurs pour lequel les informations d’identification doivent être utilisées. Le membre est un nom de serveur NetBIOS ou DNS, un suffixe de nom d’hôte DNS qui contient un caractère générique, un nom de domaine NetBIOS ou DNS qui contient une séquence de caractères génériques, ou un astérisque.

Si TargetName est un nom d’hôte DNS, le membre TargetAlias peut être le nom NetBIOS de l’hôte.

Si targetName est un suffixe de nom d’hôte DNS qui contient un caractère générique, l’étiquette la plus à gauche du nom d’hôte DNS est un astérisque (*), qui indique que le nom cible est n’importe quel serveur dont le nom se termine par le nom spécifié, par exemple*.microsoft.com.

Si targetName est un nom de domaine qui contient une séquence de caractères génériques, la syntaxe est le nom de domaine suivi d’une barre oblique inverse et d’un astérisque (*), ce qui indique que le nom cible est tout serveur membre du domaine (ou du domaine nommé).

Si TargetName est un nom de domaine DNS qui contient une séquence de caractères génériques, le membre TargetAlias peut être un nom de domaine NetBIOS qui utilise une séquence de caractères génériques pour le même domaine.

Si TargetName spécifie un partage DFS, par exemple , DfsRoot\DfsShare, ces informations d’identification correspondent au partage DFS spécifique et aux serveurs atteints via ce partage DFS.

Si TargetName est un astérisque unique (*), ces informations d’identification correspondent à n’importe quel nom de serveur.

Si TargetName est CRED_SESSION_WILDCARD_NAME, ces informations d’identification correspondent à n’importe quel nom de serveur. Ces informations d’identification correspondent avant un seul astérisque et sont valides uniquement si Persist est CRED_PERSIST_SESSION. Les informations d’identification peuvent être définies par les applications qui souhaitent remplacer temporairement les informations d’identification par défaut.

Ce membre ne peut pas comporter plus de CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) caractères.

Si le type est CRED_TYPE_GENERIC, ce membre doit identifier le service qui utilise les informations d’identification en plus de la cible réelle. Microsoft suggère que le nom soit précédé du nom de l’entreprise qui implémente le service. Microsoft utilisera le préfixe « Microsoft ». Les services écrits par Microsoft doivent ajouter leur nom de service, par exemple Microsoft_RAS_TargetName. Ce membre ne peut pas comporter plus de CRED_MAX_GENERIC_TARGET_NAME_LENGTH (32767) caractères.

Ce membre ne respecte pas la casse.

Comment

Commentaire de chaîne de l’utilisateur qui décrit ces informations d’identification. Ce membre ne peut pas comporter plus de CRED_MAX_STRING_LENGTH (256) caractères.

LastWritten

Heure, en temps universel coordonné (heure moyenne de Greenwich), de la dernière modification des informations d’identification. Pour les opérations d’écriture, la valeur de ce membre est ignorée.

CredentialBlobSize

Taille, en octets, du membre CredentialBlob . Ce membre ne peut pas être supérieur à CRED_MAX_CREDENTIAL_BLOB_SIZE (5*512) octets.

CredentialBlob

Données secrètes pour les informations d’identification. Le membre CredentialBlob peut être lu et écrit.

Si le membre Type est CRED_TYPE_DOMAIN_PASSWORD, ce membre contient le mot de passe Unicode en texte brut pour UserName. Les membres CredentialBlob et CredentialBlobSize n’incluent pas de caractère zéro de fin. En outre, pour CRED_TYPE_DOMAIN_PASSWORD, ce membre ne peut être lu que par les packages d’authentification.

Si le membre Type est CRED_TYPE_DOMAIN_CERTIFICATE, ce membre contient le code PIN Unicode de test clair pour UserName. Les membres CredentialBlob et CredentialBlobSize n’incluent pas de caractère zéro de fin. En outre, ce membre peut uniquement être lu par les packages d’authentification.

Si le membre Type est CRED_TYPE_GENERIC, ce membre est défini par l’application.

Les informations d’identification sont censées être portables. Les applications doivent s’assurer que les données dans CredentialBlob sont portables. L’application définit l’octet-endian et l’alignement des données dans CredentialBlob.

Persist

Définit la persistance de ces informations d’identification. Ce membre peut être lu et écrit.

Valeur Signification
CRED_PERSIST_SESSION
1 (0x1)
Les informations d’identification sont conservées pendant toute la durée de la session d’ouverture de session. Elle ne sera pas visible pour les autres sessions d’ouverture de session de ce même utilisateur. Il n’existera pas une fois que cet utilisateur se déconnecte et se reconnecte.
CRED_PERSIST_LOCAL_MACHINE
2 (0x2)
Les informations d’identification sont conservées pour toutes les sessions d’ouverture de session suivantes sur ce même ordinateur. Il est visible pour les autres sessions d’ouverture de session de ce même utilisateur sur ce même ordinateur et non visible pour les sessions d’ouverture de session de cet utilisateur sur d’autres ordinateurs.

Windows Vista Édition Familiale Basic, Windows Vista Famille Premium, Windows Vista Starter et Windows XP Édition Familiale : Cette valeur n’est pas prise en charge.

CRED_PERSIST_ENTERPRISE
3 (0x3)
Les informations d’identification sont conservées pour toutes les sessions d’ouverture de session suivantes sur ce même ordinateur. Elle est visible pour les autres sessions d’ouverture de session de ce même utilisateur sur ce même ordinateur et pour les sessions d’ouverture de session de cet utilisateur sur d’autres ordinateurs.

Cette option peut être implémentée en tant qu’informations d’identification persistantes localement si l’administrateur ou l’utilisateur configure le compte d’utilisateur pour qu’il n’ait pas d’état itinérant. Par instance, si l’utilisateur n’a pas de profil itinérant, les informations d’identification sont conservées uniquement localement.

Windows Vista Édition Familiale Basic, Windows Vista Famille Premium, Windows Vista Starter et Windows XP Édition Familiale : Cette valeur n’est pas prise en charge.

AttributeCount

Nombre d’attributs définis par l’application à associer aux informations d’identification. Ce membre peut être lu et écrit. Sa valeur ne peut pas être supérieure à CRED_MAX_ATTRIBUTES (64).

Attributes

Attributs définis par l’application associés aux informations d’identification. Ce membre peut être lu et écrit.

TargetAlias

Alias du membre TargetName . Ce membre peut être lu et écrit. Il ne peut pas dépasser CRED_MAX_STRING_LENGTH (256) caractères.

Si le type d’informations d’identification est CRED_TYPE_GENERIC, ce membre peut être non NULL, mais le gestionnaire d’informations d’identification ignore le membre.

UserName

Nom d’utilisateur du compte utilisé pour se connecter à TargetName.

Si le type d’informations d’identification est CRED_TYPE_DOMAIN_PASSWORD, ce membre peut être un nomd’utilisateurDomainName ou un UPN.

Si le type d’informations d’identification est CRED_TYPE_DOMAIN_CERTIFICATE, ce membre doit être une référence de certificat marshalée créée en appelant CredMarshalCredential avec un CertCredential.

Si le type d’informations d’identification est CRED_TYPE_GENERIC, ce membre peut être non NULL, mais le gestionnaire d’informations d’identification ignore le membre.

Ce membre ne peut pas comporter plus de CRED_MAX_USERNAME_LENGTH (513) caractères.

Remarques

Notes

L’en-tête wincred.h définit CREDENTIAL comme un 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

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête wincred.h