0

私たちは、新しい、そして最初の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イベントを見ると、渡されたパラメーターを確認できます。

私は何かが足りないのですか?

ありがとう、ピーター

4

1 に答える 1

2

解決策は、正しい値記述子を使用することです。

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

になります

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

このようにしAuthentication Managerて、は正しいユーザー名とパスワードを取得します。

于 2012-07-27T12:40:51.193 に答える