我正在构建一个 XE2 DataSnap 服务器,它将为来自 REST 客户端的连接提供服务。我的 DSServerClass LifeCycle 属性设置为“调用”。我想要做的是记录所有客户端连接到服务器的详细信息,包括以下详细信息:用户名、IP 地址、协议、应用程序名称。我目前可以使用以下事件获取这些详细信息:
DSAuthenticationManager - UserAuthenticate() : 用户名、协议(使用传入的标准参数)
DSServer - Connect() :协议、IP 地址、应用程序名称(使用 DSConnectEventObject.ChannelInfo.ClientInfo)
我想要做的只是为所有详细信息记录一次,但似乎我无法在一个事件中获得我需要的所有详细信息。我尝试在类中使用共享私有变量,但正如预期的那样,这会产生不一致的结果——错误的 IP 地址与错误的用户名。还有其他方法可以实现我想要的吗?
乔纳森