Функция 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
Указывает, как следует упаковывать учетные данные. Это может быть сочетание следующих флагов.
Ценность | Значение |
---|---|
|
Шифрует учетные данные, чтобы его можно было расшифровать только процессами в сеансе входа вызывающего абонента. |
|
Шифрует учетные данные в буфере 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\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, которая может возвращать следующие коды ошибок.
Возвращаемый код | Описание |
---|---|
|
Буфер, предоставляемый pPackedCredentials слишком мал. |
Замечания
Заметка
Заголовок wincred.h определяет CredPackAuthenticationBuffer в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | wincred.h |
библиотеки |
Credui.lib |
DLL | Credui.dll |