Функция SaslInitializeSecurityContextA (sspi.h)
Функция SaslInitializeSecurityContext заключает в оболочку стандартный вызов функции поставщика поддержки безопасностиInitializeSecurityContext (General) и обрабатывает файлы cookie сервера SASL с сервера.
Синтаксис
SECURITY_STATUS SEC_ENTRY SaslInitializeSecurityContextA(
[in] PCredHandle phCredential,
[in] PCtxtHandle phContext,
[in] LPSTR pszTargetName,
[in] unsigned long fContextReq,
[in] unsigned long Reserved1,
[in] unsigned long TargetDataRep,
[in] PSecBufferDesc pInput,
[in] unsigned long Reserved2,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
Параметры
[in] phCredential
Дескриптор учетных данных, возвращаемых
Функция AcquireCredentialsHandle, используемая для создания контекста безопасности. Для использования функции SaslInitializeSecurityContext требуются по крайней мере учетные данные OUTBOUND.
[in] phContext
Указатель на структуру CtxtHandle . При первом вызове функции SaslInitializeSecurityContext этот указатель имеет значение NULL. Во втором вызове этот параметр является указателем на дескриптор частично сформированного контекста, возвращаемого в параметре phNewContext при первом вызове.
[in] pszTargetName
Указатель на строку Юникода или ANSI, указывающую целевой объект контекста.
[in] fContextReq
Битовые флаги, указывающие требования контекста. Флаги, используемые для этого параметра, имеют префикс ISC_REQ_; Например, ISC_REQ_DELEGATE. Укажите сочетания следующих флагов атрибутов.
Дополнительные описания различных атрибутов см. в разделе Требования к контексту.
[in] Reserved1
Зарезервированное значение; значение должно быть равно нулю.
[in] TargetDataRep
Указывает представление данных, например упорядочение байтов, в целевом объекте. Может быть SECURITY_NATIVE_DREP или SECURITY_NETWORK_DREP.
[in] pInput
Указатель на структуру SecBufferDesc , содержащую указатели на буферы, предоставленные в качестве входных данных для пакета. При первом вызове функции указатель должен иметь значение NULL . При последующих вызовах функции это указатель на буфер, выделенный с достаточным объемом памяти для хранения маркера, возвращенного удаленным одноранговым элементом.
ДЛЯ SASL требуется один буфер типа SECBUFFER_TOKEN , содержащий запрос, полученный от сервера.
[in] Reserved2
Зарезервированное значение; значение должно быть равно нулю.
[out] phNewContext
Указатель на структуру CtxtHandle . При первом вызове функции SaslInitializeSecurityContext этот указатель получает новый дескриптор контекста. Во втором вызове phNewContext может совпадать с дескриптором, указанным в параметре phContext .
[in, out] pOutput
Указатель на структуру SecBufferDesc , содержащую указатели на структуру SecBuffer , получающую выходные данные. Если буфер был введен как SEC_READWRITE во входных данных, он будет там на выходе. Система выделит буфер для маркера безопасности при запросе (через ISC_REQ_ALLOCATE_MEMORY) и заполнит адрес в дескрипторе буфера для маркера безопасности.
[out] pfContextAttr
Указатель на переменную для получения набора битовых флагов, указывающих атрибуты установленного контекста. Описание различных атрибутов см. в разделе Требования к контексту.
Флаги, используемые для этого параметра, имеют префикс ISC_RET_, например ISC_RET_DELEGATE.
Список допустимых значений см. в параметре fContextReq .
Не проверка атрибутов, связанных с безопасностью, до тех пор, пока не будет успешно выполнен окончательный вызов функции. Флаги атрибутов, не связанные с безопасностью, такие как флаг ASC_RET_ALLOCATED_MEMORY, можно проверить перед окончательным возвратом.
[out, optional] ptsExpiry
Указатель на структуру TimeStamp , которая получает время окончания срока действия контекста. Рекомендуется, чтобы пакет безопасности всегда возвращал это значение в местное время. Этот параметр является необязательным, и для клиентов с коротким сроком действия необходимо передать ЗНАЧЕНИЕ NULL .
Возвращаемое значение
Если вызов выполнен успешно, эта функция возвращает SEC_E_OK. В следующей таблице показаны некоторые возможные значения, возвращаемые сбоем.
Код возврата | Описание |
---|---|
|
Обработка authz запрещена. |
|
Недостаточно памяти для выполнения запроса. |
|
В параметре pOutput буфер маркера отсутствует, или сообщение не удалось расшифровать. |
Комментарии
Примечание
Заголовок sspi.h определяет SaslInitializeSecurityContext в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | sspi.h (включая Security.h) |
Библиотека | Secur32.lib |
DLL | Secur32.dll |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по