ICS控件高手请进(50分)

S

scxxf

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ics控件写一个FTP服务器程序时发现,无法取得client.username的值。客户端是没有问题的,用ics自带的server程序可以读出用户名,但以下是我写的在客户端连接时判别是不是合法用户的程序却无法取得用户登陆名,用F7跟踪时发现,client.username是空值,但client.getpeerAddr的值取可以正常取得。请问是什么原因?


procedure TForm1.FtpServer1ClientConnect(Sender: TObject;
Client: TFtpCtrlSocket; AError: Word);
begin
if client.UserName ='xxx' then
begin
edit1.Text :=inttostr(ftpserver1.ClientCount)+'个用户已连接';
memo1.Lines.Add(client.GetPeerAddr+' '+client.UserName+' 已连接');
end else
begin
client.Close;
edit1.Text :=inttostr(ftpserver1.ClientCount)+'个用户已连接';
memo1.Lines.Add(client.GetPeerAddr+' '+client.UserName+' 验证未通过');
end;
end;
 
//但以下是我写的在客户端连接时判别是不是合法用户的程序却无法取得用户登陆名
进行合法用户的验证要在此进行:
procedure TFtpServerForm.FtpServer1Authenticate(Sender: TObject;
Client: TFtpCtrlSocket; UserName, Password: TFtpString;
var Authenticated: Boolean);
begin
InfoMemo.Lines.Add('! ' + Client.GetPeerAddr +
' User ''' + UserName + ''' is authenticated');
if Password = 'bad' then
Authenticated := FALSE;
end;

 
但在这里仍无法取得用户名,是为什么?
 
客户端在登录时就没有输入用户名称?
 
to:aerobull
客户端输入了用户名和密码的。我用ics自带的server demo可以看得到登陆名和密码
但我有自己写的server程序就是无法取得登陆的用户名和密码。
你有QQ吗?
 
//自己写的server程序
你其实在ics自带的demo上改就可以了,可以避免很多问题.

 
因为学习ics,在demo上改动就没必要了,那样做是知其然不知其所以然!

望其高手继续发言!
 
顶部