Я строю сервер XE2 DataSnap, который будет обслуживать соединения с клиентами REST. Свойству DOServerClass LifeCycle присвоено значение «Invocation». То, что я хочу сделать, - это зарегистрировать информацию о всех клиентских подключениях к серверу, включая следующие данные: имя пользователя, IP-адрес, протокол, имя приложения. Я могу в настоящее время получить эти данные с помощью следующих событий:Сервер данных DataSnap Delphi XE2 - Пользователь/свойства подключения клиента клиента
DSAuthenticationManager - UserAuthenticate(): имя пользователя, протокол (используя стандартные параметры, передаваемые в)
DSServer - Connect) (: протокол, IP-адрес, имя приложения (используя DSConnectEventObject.ChannelInfo.ClientInfo)
Что я хочу сделать, так это просто однократно регистрировать все детали, но, похоже, я не могу получить все детали, которые мне нужны в одном событии. Я попытался использовать общую приватную переменную в классе, но, как и ожидалось, это дало непоследовательные результаты - неправильный IP-адрес против неправильного имени пользователя. Есть ли другой способ добиться того, чего я хочу?
Джонатан
Привет, большое спасибо за ответ. К сожалению, просто попробовали эти значения свойств, и они возвращают пустые строки, я пропустил что-то еще? –
В моем тесте 'DSAuthenticationUser' и' DSAuthenticationPassword' возвратили те же значения, что и ранее переданные в событие OnUserAuthenticate. –
Используете ли вы «Invocation» в качестве жизненного цикла сервера? –