ExportSecurityContext 函数 (sspi.h)

ExportSecurityContext 函数创建安全上下文的序列化表示形式,以后可以通过调用将安全上下文导入其他进程
ImportSecurityContext。 导入安全上下文的进程必须与调用 ExportSecurityContext 的进程在同一台计算机上运行。

语法

KSECDDDECLSPEC SECURITY_STATUS SEC_ENTRY ExportSecurityContext(
  [in]            PCtxtHandle phContext,
  [in]            ULONG       fFlags,
  [out]           PSecBuffer  pPackedContext,
  [out, optional] void        **pToken
);

参数

[in] phContext

要导出的安全上下文的句柄。

[in] fFlags

此参数可以是以下值的按位 组合。

含义
SECPKG_CONTEXT_EXPORT_RESET_NEW
1 (0x1)
新的安全上下文将重置为其初始状态。
SECPKG_CONTEXT_EXPORT_DELETE_OLD
2 (0x2)
删除旧的安全上下文。
SECPKG_CONTEXT_EXPORT_TO_KERNEL
4 (0x4)
不支持此值。

Windows Server 2003 和 Windows XP/2000: 安全上下文将导出到内核。此值仅在 Schannel 内核模式下受支持。

[out] pPackedContext

指向接收序列化安全上下文的 SECBUFFER_EMPTY 类型的缓冲区的指针。 完成使用此上下文后,通过调用 FreeContextBuffer 函数来释放它。

[out, optional] pToken

用于接收上下文令牌句柄的指针。

使用完用户令牌后,通过调用 CloseHandle 函数释放句柄。

返回值

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

如果函数失败,它将返回以下错误代码之一。

返回代码 说明
SEC_E_INSUFFICIENT_MEMORY
没有足够的内存可用于完成请求的操作。
SEC_E_INVALID_HANDLE
phContext 参数不指向有效的句柄。
SEC_E_NOT_SUPPORTED
Schannel 内核模式不支持此函数。

要求

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

另请参阅

FreeContextBuffer

ImportSecurityContext

SSPI 函数