Функция CredPackAuthenticationBufferA (wincred.h)
Функция CredPackAuthenticationBuffer преобразует строковое имя пользователя и пароль в буфер проверки подлинности.
Начиная с Windows 8 и Windows Server 2012 функция CredPackAuthenticationBuffer преобразует учетные данные удостоверения в буфер проверки подлинности, который является SEC_WINNT_AUTH_IDENTITY_EX2 структурой. Этот буфер можно передать в LsaLogonUser, AcquireCredentialsHandle или другие интерфейсы поставщика удостоверений.
Синтаксис
CREDUIAPI BOOL CredPackAuthenticationBufferA(
[in] DWORD dwFlags,
[in] LPSTR pszUserName,
[in] LPSTR pszPassword,
[out] PBYTE pPackedCredentials,
[in, out] DWORD *pcbPackedCredentials
);
Параметры
[in] dwFlags
Указывает, как должны быть упакованы учетные данные. Это может быть сочетание следующих флагов.
Значение | Значение |
---|---|
|
Шифрует учетные данные, чтобы их можно было расшифровать только процессами в сеансе входа вызывающего абонента. |
|
Шифрует учетные данные в буфере WOW. |
|
Шифрует учетные данные в буфере CRED_GENERIC. |
|
Шифрует учетные данные сетевого удостоверения в SEC_WINNT_AUTH_IDENTITY_EX2 структуре. Если CRED_PACK_GENERIC_CREDENTIALS и CRED_PACK_ID_PROVIDER_CREDENTIALS не заданы, шифрует учетные данные в буфере KERB_INTERACTIVE_LOGON.
Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008: Это значение не поддерживается. |
[in] pszUserName
Указатель на строку, завершающуюся значением NULL, которая указывает имя пользователя для преобразования. Для пользователей домена строка должна иметь следующий формат:
Domainname\Пользователя
Для сетевых удостоверений, если учетные данные являются паролем в виде открытого текста, формат имени пользователя — ProviderName\UserName. Если учетные данные являются структурой SEC_WINNT_AUTH_IDENTITY_EX2 , имя пользователя представляет собой кодированную строку, которая является выходными данными параметра UserName вызова функции SspiEncodeAuthIdentityAsStrings.
Для учетных данных смарт-карта или сертификата имя пользователя представляет собой кодированную строку, которая является выходными данными вызова функции CredMarshalCredential с параметром CertCredential.
Windows Server 2008 R2, Windows 7, Windows Server 2008 и Windows Vista: Сетевые удостоверения не поддерживаются.
[in] pszPassword
Указатель на строку, завершающуюся значением NULL, которая указывает пароль для преобразования.
Для SEC_WINNT_AUTH_IDENTITY_EX2 учетных данных пароль является закодированной строкой, которая находится в выходных данных ppszPackedCredentialsString вызова функции SspiEncodeAuthIdentityAsStrings.
Для интеллектуальных учетных данных карта это интеллектуальный ПИН-код карта.
Windows Server 2008 R2, Windows 7, Windows Server 2008 и Windows Vista: Сетевые удостоверения не поддерживаются.
[out] pPackedCredentials
Указатель на массив байтов, который в выходных данных получает упакованный буфер проверки подлинности. Этот параметр может иметь значение NULL для получения требуемого размера буфера в параметре pcbPackedCredentials .
[in, out] pcbPackedCredentials
Указатель на значение DWORD , указывающее размер (в байтах) буфера pPackedCredentials . В выходных данных, если буфер недостаточного размера, указывает требуемый размер буфера pPackedCredentials в байтах .
Возвращаемое значение
Значение TRUE , если функция выполнена успешно; в противном случае — FALSE.
Для получения дополнительных сведений об ошибке вызовите функцию GetLastError , которая может вернуть следующие коды ошибок.
Код возврата | Описание |
---|---|
|
Буфер, предоставляемый pPackedCredentials , слишком мал. |
Комментарии
Примечание
Заголовок wincred.h определяет CredPackAuthenticationBuffer в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | wincred.h |
Библиотека | Credui.lib |
DLL | Credui.dll |