indy tcp 服务器中的用户身份验证

User Authentication in indy tcp server

我正在尝试编写一个 telnet 类型的程序来从 indy tcpserver 读取数据

我希望用户首先进行身份验证..这很容易..但问题是我将此身份验证结果保存在哪里,以便当客户端执行另一个命令时,我的 tcpserver 会知道这是一个经过身份验证的用户并且 return数据相应。

我希望我是具体的..对不起我的英语我来自委内瑞拉。

Indy 9 中的

TIdPeerThread 和 Indy 10 中的 TIdContext,两者都有一个 Data 属性,你可以在其中存储任何你想要的东西。

更好的选择是从 TIdPeerThread/TIdServerContext 派生新的 class,根据需要将自定义 fields/properties 添加到那个 class,然后将 class 分配给服务器的 ThreadClass/ContextClass 属性。每个命令处理程序然后可以将提供的 APeerThread/AContext 对象类型转换为您的 class 类型以访问您的自定义数据。

您应该查看 Indy 自己的支持用户身份验证的组件的源代码,例如 TIdPOP3ServerTIdSMTPServer,以了解它们如何在命令之间保留身份验证数据。