Поделиться через


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

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

Синтаксис

CREDUIAPI DWORD CredUIParseUserNameW(
  [in]  PCWSTR UserName,
  [out] WCHAR  *user,
  [in]  ULONG  userBufferSize,
  [out] WCHAR  *domain,
  [in]  ULONG  domainBufferSize
);

Параметры

[in] UserName

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

[out] user

Указатель на строку null-terminated, которая получает имя учетной записи пользователя.

[in] userBufferSize

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

примечание CREDUI_MAX_USERNAME_LENGTH не включает завершающий символ null.
 

[out] domain

Указатель на строку null-terminated, которая получает доменное имя. Если 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или pszDomainNULL.

Замечания

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

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

  • <МаршаллеedCredentialReference>

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

  • <DomainName>\<UserName>

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

  • <UserName>@<DNSDomainName>

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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка wincred.h
библиотеки Credui.lib
DLL Credui.dll

См. также

CredIsMarshaledCredential

CredUICmdLinePromptForCredentials

CredUIPromptForCredentials

LogonUser