Fonction CredUIParseUserNameA (wincred.h)

La fonction CredUIParseUserName extrait le nom du domaine et du compte d’utilisateur d’un nom d’utilisateur complet.

Syntaxe

CREDUIAPI DWORD CredUIParseUserNameA(
  [in]  PCSTR userName,
  [out] CHAR  *user,
  [in]  ULONG userBufferSize,
  [out] CHAR  *domain,
  [in]  ULONG domainBufferSize
);

Paramètres

[in] userName

Pointeur vers une chaîne terminée par null qui contient le nom d’utilisateur à analyser. Le nom doit être au format UPN ou de niveau inférieur, ou d’un certificat. En règle générale, pszUserName est reçu de CredUIPromptForCredentials ou CredUICmdLinePromptForCredentials.

[out] user

Pointeur vers une chaîne terminée par null qui reçoit le nom du compte d’utilisateur.

[in] userBufferSize

Nombre maximal de caractères à écrire dans la chaîne pszUser , y compris le caractère null de fin.

Note CREDUI_MAX_USERNAME_LENGTH n’inclut PAS le caractère null de fin.
 

[out] domain

Pointeur vers une chaîne terminée par null qui reçoit le nom de domaine. Si pszUserName spécifie un certificat, pszDomain aura la valeur NULL.

[in] domainBufferSize

Nombre maximal de caractères à écrire dans la chaîne pszDomain , y compris le caractère null de fin.

Note CREDUI_MAX_DOMAIN_TARGET_LENGTH n’inclut PAS le caractère null de fin.
 

Valeur retournée

Cette fonction retourne ce qui suit :

  • NO_ERROR

    Le nom d’utilisateur est valide.

  • ERROR_INVALID_ACCOUNT_NAME

    Le nom d’utilisateur n’est pas valide.

  • ERROR_INSUFFICIENT_BUFFER

    L’une des mémoires tampons est trop petite.

  • ERROR_INVALID_PARAMETER
    • ulUserMaxChars ou ulDomainMaxChars est égal à zéro.
    • pszUserName, pszUser ou pszDomain a la valeur NULL.

Remarques

Cette fonction analyse les informations de nom d’utilisateur retournées par les fonctions CredUIPromptForCredentials et CredUICmdLinePromptForCredentials afin que les informations d’identification obtenues puissent être transmises à des fonctions, telles que LogonUser, qui nécessitent le nom d’utilisateur et le domaine sous forme de chaînes distinctes.

Les formats suivants sont pris en charge :

  • <MarshalledCredentialReference>

    Référence d’informations d’identification marshalées telle que définie par CredIsMarshaledCredential. Ces informations d’identification sont retournées dans le paramètre User . Le paramètre Domain est défini sur une chaîne vide.

  • <DomainName>\<UserName>

    <UserName> est retourné dans le paramètre User et le <DomainName> est retourné est le paramètre Domain . Le nom est considéré comme ayant cette syntaxe si userName contient une barre oblique inverse (\).

  • <UserName>@<DNSDomainName>

    La chaîne entière est retournée dans le paramètre User . Le paramètre Domain est défini sur une chaîne vide. Pour cette syntaxe, le dernier @ de la chaîne est utilisé, car <UserName> peut contenir un @ mais <DNSDomainName> ne peut pas.

Notes

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

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]
Plateforme cible Windows
En-tête wincred.h
Bibliothèque Credui.lib
DLL Credui.dll

Voir aussi

CredIsMarshaledCredential

CredUICmdLinePromptForCredentials

CredUIPromptForCredentials

LogonUser