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 comme zéro et non modifiés pour permettre une amélioration future.

Valeur Signification
CRED_FLAGS_PROMPT_NOW
2 (0x2)
Bit défini si les informations d’identification ne conservent pas le 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 lors de la requête.

Si type est CRED_TYPE_DOMAIN_CERTIFICATE, le 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 réessaye l’authentification. Étant donné que les informations d’identification ont été écrites récemment, le package d’authentification obtient maintenant des informations d’identification qui ne sont pas marquées comme CRED_FLAGS_PROMPT_NOW.

CRED_FLAGS_USERNAME_TARGET
4 (0x4)
Le 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 le CredentialBlob pour 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. Ce membre ne peut pas être modifié 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 pas utilisées par un 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 et sont 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 et sont 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. Ce membre ne peut pas être modifié 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 portant le nouveau nom créé.

Si type est CRED_TYPE_DOMAIN_PASSWORD ou CRED_TYPE_DOMAIN_CERTIFICATE, ce membre identifie le serveur ou les serveurs auxquels 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 TargetAlias membre peut être le nom NetBIOS de l’hôte.

Si le 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 (*), ce 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 l'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 (*), qui indique que le nom cible est n’importe quel serveur membre du domaine nommé (ou domaine).

Si TargetName est un nom de domaine DNS qui contient une séquence de caractères génériques, le TargetAlias membre peut être un nom de domaine NetBIOS qui utilise une séquence générique 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 ne sont valides que 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 dépasser 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éfixé par le nom de l’entreprise implémentant 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 dépasser CRED_MAX_GENERIC_TARGET_NAME_LENGTH caractères (32767).

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 dépasser CRED_MAX_STRING_LENGTH (256) caractères.

LastWritten

Heure, en temps universel coordonné (Heure 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 clair pour UserName. Les CredentialBlob et CredentialBlobSize membres 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 de est CRED_TYPE_DOMAIN_CERTIFICATE, ce membre contient le code CONFIDENTIEL Unicode de test clair pour UserName. Les CredentialBlob et CredentialBlobSize membres n’incluent pas de caractère zéro de fin. De plus, ce membre ne peut être lu que 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 le byte-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 persistent pour la durée de la session d’ouverture de session. Il ne sera pas visible par d’autres sessions d’ouverture de session de ce même utilisateur. Il n’existe pas après que cet utilisateur se déconnecte et se reconnecte.
CRED_PERSIST_LOCAL_MACHINE
2 (0x2)
Les informations d’identification persistent pour toutes les sessions d’ouverture de session suivantes sur ce même ordinateur. Il est visible par d’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 pour cet utilisateur sur d’autres ordinateurs.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter et Windows XP Home Edition : Cette valeur n’est pas prise en charge.

CRED_PERSIST_ENTERPRISE
3 (0x3)
Les informations d’identification persistent pour toutes les sessions d’ouverture de session suivantes sur ce même ordinateur. Il est visible par d’autres sessions d’ouverture de session de ce même utilisateur sur ce même ordinateur et pour les sessions d’ouverture de session pour 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 ne pas avoir d’état itinérant. Par exemple, si l’utilisateur n’a pas de profil itinérant, les informations d’identification persistent uniquement localement.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter et Windows XP Home Edition : 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 pour le membre TargetName . Ce membre peut être lu et écrit. Il ne peut pas dépasser CRED_MAX_STRING_LENGTH (256) caractères.

Si les informations d’identification Type sont CRED_TYPE_GENERIC, ce membre peut être nonNULL, mais le gestionnaire d’informations d’identification ignore le membre.

UserName

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

Si les informations d’identification Type sont CRED_TYPE_DOMAIN_PASSWORD, ce membre peut être un nom de domaine UserName ou un UPN.

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

Si les informations d’identification Type sont CRED_TYPE_GENERIC, ce membre peut être nonNULL, mais le gestionnaire d’informations d’identification ignore le membre.

Ce membre ne peut pas dépasser CRED_MAX_USERNAME_LENGTH (513) caractères.

Remarques

Note

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