SaslAcceptSecurityContext 函数 (sspi.h)
SaslAcceptSecurityContext 函数包装对 安全支持提供程序接口AcceptSecurityContext(常规) 函数的标准调用,并包括创建 SASL 服务器 Cookie。
语法
SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
[in] PCredHandle phCredential,
[in, optional] PCtxtHandle phContext,
[in] PSecBufferDesc pInput,
[in] unsigned long fContextReq,
[in] unsigned long TargetDataRep,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
参数
[in] phCredential
服务器的凭据句柄。 服务器调用 AcquireCredentialsHandle 函数,并将 INBOUND 标志设置为检索此句柄。
[in, optional] phContext
指向 CtxtHandle 结构的指针。 在第一次调用 AcceptSecurityContext (常规)时,此指针 NULL。 在后续调用中,phContext 是第一次调用在 phNewContext 参数中返回的部分形式的上下文的句柄。
[in] pInput
指向客户端调用 InitializeSecurityContext(常规) 函数(包含输入缓冲区描述符)生成的 SecBufferDesc 结构的指针。
SASL 需要 SECBUFFER_TOKEN类型的单个缓冲区。 对于对 AcceptSecurityContext(常规) 函数的第一次调用,缓冲区为空,其中包含从客户端接收的第二次调用的质询响应。
[in] fContextReq
指定服务器建立上下文所需的属性的位标志。 可以使用按位或 操作组合位标志。 下表显示了可能的值。
价值 | 意义 |
---|---|
|
加密和解密消息。
仅适用于 SASL 的摘要 SSP。 |
|
对 HTTP 使用摘要。 省略此标志以使用 Digest 作为 SASL 机制。 |
[in] TargetDataRep
指示目标上的数据表示形式,例如字节排序。 此值可以是SECURITY_NATIVE_DREP或SECURITY_NETWORK_DREP。
[out] phNewContext
指向 CtxtHandle 结构的指针。 在第一次调用 AcceptSecurityContext (常规)时,此指针将接收新的上下文句柄。 在后续调用中,phNewContext 可以与在 phContext 参数中指定的句柄相同。
[in, out] pOutput
指向包含输出缓冲区描述符的 SecBufferDesc 结构的指针。 此缓冲区将发送到客户端,以便输入对 InitializeSecurityContext (常规)的其他调用。 即使函数返回SEC_E_OK,也可以生成输出缓冲区。 生成的任何缓冲区都必须发送回客户端应用程序。
[out] pfContextAttr
指向一个变量的指针,该变量接收一组指示已建立上下文的属性的位标志。 有关各种属性的说明,请参阅 上下文要求。 用于此参数的标志以ASC_RET为前缀,例如ASC_RET_DELEGATE。
在最终函数调用成功返回之前,不要检查安全相关的属性。 与安全性无关的属性标志(如ASC_RET_ALLOCATED_MEMORY标志)可以在最终返回之前进行检查。
[out, optional] ptsExpiry
指向接收上下文过期时间的 TimeStamp 结构的指针。 建议 安全包 始终在本地时间返回此值。
返回值
如果调用成功完成,此函数将返回SEC_E_OK。 下表显示了一些可能的故障返回值。
返回代码 | 描述 |
---|---|
|
不允许使用 Authz 处理。 |
|
没有足够的内存可用于完成请求。 |
|
没有令牌缓冲区位于 pOutput 参数中,或者消息无法解密。 |
言论
标识返回SEC_E_OK的 AcceptSecurityContext (常规) 函数的最终调用。 如果生成返回令牌,SASL 处理将暂停一次往返客户端,以允许处理最终令牌。 交换完成后,SEC_E_CONTINUE_NEEDED返回到应用程序,并附加 SASL 服务器 Cookie 使用 SSPI 消息函数加密。 初始服务器 Cookie 指示是否支持 INTEGRITY 和 PRIVACY。 此初始服务器 Cookie 由客户端处理,客户端返回客户端 Cookie 以指示客户端请求的服务。 然后,客户端 Cookie 由服务器解密,最终服务针对以下消息流量确定。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 不支持 |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | sspi.h (包括 Security.h) |
库 | Secur32.lib |
DLL | Secur32.dll |