Аутентификация пользователя на сервере Delphi Datasnap

Мы разрабатываем новый и наш первый сервер DataSnap и клиентские приложения. Я добавил аутентификацию на сервер, но не могу динамически изменить данные для входа в систему с клиента. Пользователь и пароль в

procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate(
  Sender: TObject; const Protocol, Context, User, Password: string;
  var valid: Boolean; UserRoles: TStrings);

остается пустым

В клиенте мы устанавливаем значения как таковые...

DSConnection := TSQLConnection.Create(nil);
DSConnection.DriverName := 'DATASNAP';
DSConnection.LoginPrompt := False;
DSConnection.Params.Values['port'] :=  Port;
DSConnection.Params.Values['HostName'] :=  HostName;
DSConnection.Params.Values['DSAuthUser'] :=  Username;
DSConnection.OnLogin := DSConnectionOnLogin;
DSProviderConnection1.SQLConnection := DSConnection;
MMLog.Log('DSConnection: ' + DSConnection.Params.Text);
DSConnection.Open;

Если я, однако, смотрю на DSConnectEventObject.ConnectProperties.Properties.Text на сервере OnConnect событие, я могу видеть параметры как пройденные.

Я что-то пропустил?

Спасибо Питер

1 ответ

Решение

Решение состоит в том, чтобы использовать правильные дескрипторы значения.

DSConnection.Params.Values['DSAuthUser'] :=  Username;

становится

DSConnection.Params.Values['DSAuthenticationUser'] :=  Username;
DSConnection.Params.Values['DSAuthenticationPassword'] := Password;

Таким образом, Authentication Manager получает правильное имя пользователя и пароль.

Другие вопросы по тегам