Функция 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 .
[out] domain
Указатель на строку, завершающуюся null, которая получает доменное имя. Если pszUserName указывает сертификат, pszDomain будет иметь значение NULL.
[in] domainBufferSize
Максимальное число символов для записи в строку pszDomain , включая завершающий символ 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 |