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


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

Функция CredPackAuthenticationBuffer преобразует строковое имя пользователя и пароль в буфер проверки подлинности.

Начиная с Windows 8 и Windows Server 2012, функция CredPackAuthenticationBuff er преобразует учетные данные удостоверения в буфер проверки подлинности, который является структурой 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\UserName

Для сетевых удостоверений, если учетные данные являются паролем обычного текста, формат имени пользователя ProviderName\UserName. Если учетные данные являются структурой SEC_WINNT_AUTH_IDENTITY_EX2, имя пользователя является закодированной строкой, которая является выходным результатом параметра UserName вызова функции для SspiEncodeAuthIdentityAsStrings.

Для смарт-карты или учетных данных сертификата имя пользователя является закодированной строкой, которая является выходным результатом вызова функции CredMarshalCredential с параметром CertCredential.

Windows Server 2008 R2, Windows 7, Windows Server 2008 и Windows Vista: удостоверения Online не поддерживаются.

[in] pszPassword

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

Для учетных данных SEC_WINNT_AUTH_IDENTITY_EX2 пароль является закодированной строкой, которая находится в ppszPackedCredentialsString выходных данных вызова функции SspiEncodeAuthIdentityAsStrings.

Для учетных данных смарт-карты это ПИН-код смарт-карты.

Windows Server 2008 R2, Windows 7, Windows Server 2008 и Windows Vista: удостоверения Online не поддерживаются.

[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 [только классические приложения]
целевая платформа Виндоус
заголовка wincred.h
библиотеки Credui.lib
DLL Credui.dll