Функция 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

Указывает, как должны быть упакованы учетные данные. Это может быть сочетание следующих флагов.

Значение Значение
CRED_PACK_PROTECTED_CREDENTIALS
Шифрует учетные данные, чтобы их можно было расшифровать только процессами в сеансе входа вызывающего абонента.
CRED_PACK_WOW_BUFFER
Шифрует учетные данные в буфере WOW.
CRED_PACK_GENERIC_CREDENTIALS
Шифрует учетные данные в буфере CRED_GENERIC.
CRED_PACK_ID_PROVIDER_CREDENTIALS
Шифрует учетные данные сетевого удостоверения в 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 , которая может вернуть следующие коды ошибок.

Код возврата Описание
ERROR_INSUFFICIENT_BUFFER
Буфер, предоставляемый pPackedCredentials , слишком мал.

Комментарии

Примечание

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

Требования

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