关闭 Schannel 连接
客户端或服务器完成连接后,必须将其关闭。 另一方反过来必须识别关闭并删除连接。
关闭 Schannel 连接
- 调用 ApplyControlToken 函数,指定SCHANNEL_SHUTDOWN控制令牌。
- 从 ApplyControlToken 收到SEC_E_OK返回值后,调用 InitializeSecurityContext (Schannel) (客户端) 或 AcceptSecurityContext (Schannel) (服务器) 函数传入空缓冲区。
- 继续,就像应用程序正在创建新连接一样,直到函数返回SEC_I_CONTEXT_EXPIRED或SEC_E_OK以指示连接已关闭。
- 将最终输出信息(如果有)发送给远程方。
- 调用 DeleteSecurityContext 以释放连接持有的资源。
识别关闭
当消息发送方关闭连接时, DecryptMessage (Schannel) 函数返回SEC_I_CONTEXT_EXPIRED。 收到此返回值后,请按照本主题前面的关闭 Schannel 连接的过程进行操作。