Функция CredUIParseUserNameA (wincred.h)

Функция CredUIParseUserName извлекает имя домена и учетной записи пользователя из полного имени пользователя.

Синтаксис

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

Параметры

[in] userName

Указатель на строку, завершающуюся нулевым значением, которая содержит имя пользователя для анализа. Имя должно быть в формате имени участника-пользователя или нижнего уровня, а также в формате сертификата. Как правило, pszUserName получается из credUIPromptForCredentials или CredUICmdLinePromptForCredentials.

[out] user

Указатель на строку, завершающуюся значением NULL, которая получает имя учетной записи пользователя.

[in] userBufferSize

Максимальное число символов для записи в строку pszUser , включая завершающий символ NULL .

Примечание CREDUI_MAX_USERNAME_LENGTH НЕ включает завершающий символ NULL .
 

[out] domain

Указатель на строку, завершающуюся null, которая получает доменное имя. Если pszUserName указывает сертификат, pszDomain будет иметь значение NULL.

[in] domainBufferSize

Максимальное число символов для записи в строку pszDomain , включая завершающий символ NULL .

Примечание CREDUI_MAX_DOMAIN_TARGET_LENGTH НЕ включает завершающий символ NULL .
 

Возвращаемое значение

Эта функция возвращает следующее:

  • NO_ERROR

    Допустимое имя пользователя.

  • ERROR_INVALID_ACCOUNT_NAME

    Недопустимое имя пользователя.

  • ERROR_INSUFFICIENT_BUFFER

    Один из буферов слишком мал.

  • ERROR_INVALID_PARAMETER
    • Значение ulUserMaxChars или ulDomainMaxChars равно нулю.
    • pszUserName, pszUser или pszDomain имеет значение NULL.

Комментарии

Эта функция анализирует сведения об имени пользователя, возвращаемые функциями CredUIPromptForCredentials и CredUICmdLinePromptForCredentials , чтобы полученные учетные данные можно было передать в такие функции, как LogonUser, которым требуется имя пользователя и домен в виде отдельных строк.

Поддерживаются следующие форматы:

  • <MarshalledCredentialReference>

    Ссылка на маршалированные учетные данные, определенная в CredIsMarshaledCredential. Такие учетные данные возвращаются в параметре User . Параметру Domain присваивается пустая строка.

  • <DomainName>\<UserName>

    <UserName> возвращается в параметре User , а <значение DomainName> — параметр Domain . Считается, что имя имеет этот синтаксис, если имя пользователя содержит обратную косую черту (\).

  • <UserName>@<DNSDomainName>

    Вся строка возвращается в параметре User . Параметру Domain присваивается пустая строка. Для этого синтаксиса используется последний @ в строке, так как <UserName> может содержать @ , а <DNSDomainName> — нет.

Примечание

Заголовок wincred.h определяет CredUIParseUserName в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header wincred.h
Библиотека Credui.lib
DLL Credui.dll

См. также раздел

CredIsMarshaledCredential

CredUICmdLinePromptForCredentials

CredUIPromptForCredentials

Logonuser