gpt4 book ai didi

Delphi XE2 DataSnap Server - 记录客户端连接用户/属性

转载 作者:可可西里 更新时间:2023-11-01 16:52:27 26 4
gpt4 key购买 nike

我正在构建一个 XE2 DataSnap 服务器,它将为来自 REST 客户端的连接提供服务。我的 DSServerClass 生命周期属性设置为“调用”。我想要做的是记录所有客户端连接到服务器的详细信息,包括以下详细信息:用户名、IP 地址、协议(protocol)、应用程序名称。我目前可以使用以下事件获取这些详细信息:

DSAuthenticationManager - UserAuthenticate() :用户名、协议(protocol)(使用传入的标准参数)

DSServer - Connect() :协议(protocol)、IP 地址、应用程序名称(使用 DSConnectEventObject.ChannelInfo.ClientInfo)

我想做的只是为所有细节记录一次,但似乎我无法在一次事件中获得我需要的所有细节。我尝试在类中使用共享私有(private)变量,但正如预期的那样,结果不一致——错误的 IP 地址对应错误的用户名。还有其他方法可以实现我想要的吗?

乔纳森

最佳答案

procedure TServerContainer1.DSServer1Connect(DSConnectEventObject: TDSConnectEventObject);
begin
Form1.Memo1.Lines.Add(Format('Conn->UserName=%s, Password=%s', [
DSConnectEventObject.ConnectProperties[TDBXPropertyNames.UserName],
DSConnectEventObject.ConnectProperties[TDBXPropertyNames.Password]
]));
// 取 Client 端的IP 和 Port
Form1.Memo1.Lines.Add('IP =' + DSConnectEventObject.ChannelInfo.ClientInfo.IpAddress + ':'
+ DSConnectEventObject.ChannelInfo.ClientInfo.ClientPort);
end;

关于Delphi XE2 DataSnap Server - 记录客户端连接用户/属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11011461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com