我正在构建一个XE2 DataSnap服务器,它将服务于来自REST客户端的连接。我的DSServerClass LifeCycle属性设置为“调用”。我想要做的是将所有客户端连接的详细信息记录到服务器上,包括以下详细信息:用户名,IP地址,协议和应用程序名称。 UserAuthenticate() -Delphi XE2 DataSnap服务器 - 日志客户端连接用户/属性
DSAuthenticationManager:用户名,协议(使用传递的标准参数)
与dsserver - 连接():我可以采用下列事件目前得到这些细节的协议,IP地址,应用程序名称(使用DSConnectEventObject.ChannelInfo.ClientInfo)
我想要做的只是记录一次所有的细节,但似乎我无法在一个事件中获得所有我需要的细节。我尝试在类中使用共享私有变量,但正如预期的那样,结果不一致 - 错误的IP地址与错误的用户名。有另一种方法来实现我想要的吗?
乔纳森
嗨,为响应千恩万谢。不幸的是,只是尝试这些属性值,他们返回空白字符串,我错过了别的东西? –
在我的测试中,'DSAuthenticationUser'和'DSAuthenticationPassword'返回的值与之前传递给'OnUserAuthenticate'事件的值相同。 –
您是否使用'Invocation'作为服务器LifeCycle? –