1

据说要关闭一个schannel连接需要遵循以下步骤: 1)调用ApplyControlToken函数,指定SCHANNEL_SHUTDOWN控制令牌。

2)从ApplyControlToken收到SEC_E_OK返回值后,调用InitializeSecurityContext(Schannel)(客户端)或AcceptSecurityContext(Schannel)(服务器)函数,传入空缓冲区。

3) 就好像您的应用程序正在创建一个新连接一样继续进行,直到函数返回 SEC_I_CONTEXT_EXPIRED 或 SEC_E_OK 以指示连接已关闭。将最终输出信息(如果有)发送给远程方。

4)Call DeleteSecurityContext to free resources held by the connection.

从链接Shutting Down an Schannel Connection 但是,我们是否需要从客户端和服务器传递信息。传递信息后,我们需要在远程端如何处理该信息。

4

1 回答 1

0

我们可以从您发送最后一条消息的一侧传递结束说明。当远程连接发送结束注释时,DecryptMessage 将返回 SEC_I_CONTEXT_EXPIRED。

于 2021-05-16T17:59:11.763 回答