SetContextAttributesA 函数 (sspi.h)

允许传输应用程序为安全包设置安全上下文的属性。 仅 Schannel 安全包支持此函数。

语法

SECURITY_STATUS SEC_ENTRY SetContextAttributesA(
  [in] PCtxtHandle   phContext,
  [in] unsigned long ulAttribute,
  [in] void          *pBuffer,
  [in] unsigned long cbBuffer
);

参数

[in] phContext

要设置的安全上下文的句柄。

[in] ulAttribute

要设置的上下文的 属性。 此参数的取值可为下列值之一:

含义
SECPKG_ATTR_APP_DATA
94
pBuffer 参数包含指向SecPkgContext_SessionAppData结构的指针。

设置会话的应用程序数据。

仅 Schannel 安全包支持此属性。

SECPKG_ATTR_EAP_PRF_INFO
101
pBuffer 参数包含指向SecPkgContext_EapPrfInfo结构的指针。

设置可扩展身份验证协议 (EAP) (PRF) 使用的伪随机函数。 这是在将 SECPKG_ATTR_EAP_KEY_BLOCK 作为 ulAttribute 参数的值传递时,调用 QueryContextAttributes (Schannel) 函数返回的值。

仅 Schannel 安全包支持此属性。

SECPKG_ATTR_EARLY_START
105
pBuffer 参数包含指向SecPkgContext_EarlyStart结构的指针。

设置 False Start 功能。 有关此功能的信息,请参阅 构建更快、更安全的 Web 博客文章。

SECPKG_ATTR_DTLS_MTU
34
设置和检索 MTU (用于 DTLS 的最大传输单位) 值。 如果未在安全上下文中启用 DTLS,则不支持此属性。

有效值介于 200 字节和 64 KB 之间。 Schannel 中的默认 DTLS MTU 值为 1096 字节。

SECPKG_ATTR_KEYING_MATERIAL_INFO
106
pBuffer 参数包含指向SecPkgContext_KeyingMaterialInfo结构的指针。 密钥材料导出功能遵循 RFC 5705 标准

只有 Windows 10 和 Windows Server 2016 或更高版本中的 Schannel 安全包才支持此属性。

[in] pBuffer

指向结构的指针,该结构包含要设置特性的值。 指向 的结构的类型取决于 ulAttribute 参数中指定的值。

[in] cbBuffer

pBuffer 参数的大小(以字节为单位)。

返回值

如果该函数成功,则函数返回SEC_E_OK。

如果函数失败,它将返回非零错误代码。 以下错误代码是可能的错误代码之一。

返回代码 说明
SEC_E_UNSUPPORTED_FUNCTION
此值由 Schannel 内核模式返回,以指示不支持此函数。

注解

注意

sspi.h 标头将 SetContextAttributes 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 sspi.h (包括 Security.h)
Library Secur32.lib
DLL Secur32.dll