Функция AcquireCredentialsHandleA (sspi.h)
Функция AcquireCredentialsHandle (CredSSP) получает дескриптор учетных данных субъекта безопасности . Этот дескриптор требуется
Синтаксис
SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleA(
[in, optional] LPSTR pszPrincipal,
[in] LPSTR pszPackage,
[in] unsigned long fCredentialUse,
[in, optional] void *pvLogonId,
[in, optional] void *pAuthData,
[in, optional] SEC_GET_KEY_FN pGetKeyFn,
[in, optional] void *pvGetKeyArgument,
[out] PCredHandle phCredential,
[out, optional] PTimeStamp ptsExpiry
);
Параметры
[in, optional] pszPrincipal
Указатель на строку, завершающуюся значением NULL, которая указывает имя субъекта, учетные данные которого будут ссылаться на дескриптор.
[in] pszPackage
Указатель на строку, завершающую значение NULL, которая указывает имя пакета безопасности , с которыми будут использоваться эти учетные данные. Это имя пакета безопасности, возвращаемое в элементе имени структуры
[in] fCredentialUse
Флаг, указывающий, как будут использоваться эти учетные данные. Этот параметр может быть одним из следующих значений.
[in, optional] pvLogonId
Указатель на локально уникальный идентификатор (LUID), который идентифицирует пользователя. Этот параметр предоставляется для процессов файловой системы, таких как сетевые перенаправления. Этот параметр может быть NULL.
[in, optional] pAuthData
Указатель на структуру CREDSSP_CRED, указывающую данные проверки подлинности для пакетов Schannel и Negotiate.
[in, optional] pGetKeyFn
Скрытный. Этот параметр не используется и должен иметь значение NULL.
[in, optional] pvGetKeyArgument
Скрытный. Этот параметр должен иметь значение NULL.
[out] phCredential
Указатель на структуру CredHandle, которая получит дескриптор учетных данных.
[out, optional] ptsExpiry
Указатель на структуру TimeStamp, которая получает время истечения срока действия возвращаемых учетных данных. Полученное значение структуры зависит от пакета безопасности, который должен указывать значение в локальном времени.
Возвращаемое значение
Если функция успешно выполнена, она возвращает SEC_E_OK.
Если функция завершается ошибкой, она возвращает один из следующих кодов ошибок.
Возвращаемый код | Описание |
---|---|
|
Для выполнения запрошенного действия недостаточно памяти. |
|
Произошла ошибка, которая не сопоставлялась с кодом ошибки SSPI. |
|
Учетные данные недоступны впакета безопасности |
|
Вызывающий объект функции не имеет необходимых учетных данных. |
|
Запрошенный пакет безопасности не существует. |
|
Учетные данные, предоставленные пакету, не распознаны. |
Замечания
Функция
Как правило,
Пакет может вызывать функцию в pGetKeyFn, предоставляемой транспортом времени выполнения RPC. Если транспорт не поддерживает понятие обратного вызова для получения учетных данных, этот параметр должен быть NULL.
Для вызывающих вызовов в режиме ядра необходимо отметить следующие различия:
- Два строковых параметра должны быть строки Юникода.
- Значения буфера должны быть выделены в виртуальной памяти процесса, а не из пула.
Заметка
Заголовок sspi.h определяет AcquireCredentialsHandle как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | sspi.h (include Security.h) |
библиотеки |
Secur32.lib |
DLL | Secur32.dll |
См. также
AcceptSecurityContext (CredSSP)
InitializeSecurityContext (CredSSP)
функций SSPI