2012-07-27 71 views
0

我們正在開發一個新的,我們的第一個DataSnap服務器和客戶端應用程序。我已經向服務器添加了身份驗證,但無法動態更改客戶端連接的登錄詳細信息。用戶和密碼Delphi 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事件,我可以看到參數傳遞。

我錯過了什麼嗎?

謝謝,彼得

回答

2

解決方案是使用正確的值描述符。

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

成爲

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

這樣,Authentication Manager得到正確的用戶名和密碼。

相關問題