Structure CREDENTIALW (wincred.h)
La structure CREDENTIAL contient des informations d’identification individuelles.
Syntaxe
typedef struct _CREDENTIALW {
DWORD Flags;
DWORD Type;
#if ...
wchar_t *TargetName;
#else
LPWSTR TargetName;
#endif
#if ...
wchar_t *Comment;
#else
LPWSTR Comment;
#endif
FILETIME LastWritten;
DWORD CredentialBlobSize;
LPBYTE CredentialBlob;
DWORD Persist;
DWORD AttributeCount;
PCREDENTIAL_ATTRIBUTEW Attributes;
#if ...
wchar_t *TargetAlias;
#else
LPWSTR TargetAlias;
#endif
#if ...
wchar_t *UserName;
#else
LPWSTR UserName;
#endif
} CREDENTIALW, *PCREDENTIALW;
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 |
---|---|
|
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 du 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 du 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 désormais des informations d’identification qui ne sont pas marquées comme CRED_FLAGS_PROMPT_NOW. |
|
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 après la création des informations d’identification. Les valeurs suivantes sont valides.
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 après la création des informations d’identification. 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 créées.
Si Type est CRED_TYPE_DOMAIN_PASSWORD ou CRED_TYPE_DOMAIN_CERTIFICATE, ce membre identifie le ou les serveurs pour ux ant utiliser les informations d’identification. 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 n’importe quel 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 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 à tous les 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 astérisque unique 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 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é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 dépasser 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 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 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 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 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.
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 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 Nom_Domaine\UserName 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 être plus long que 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. 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.
Configuration requise
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 |