![]() |
INDY 10 FTP
Hallo zusammen,
ich bin gerade dabei mir einen kleinen FTP Server mit INDY 10 Komponenten zu basten. Ich habe nur ein Paar kleine Probleme. Evtl. könnt ihr mir ja weiter helfen. Als 1. funktioniert u.g. Procedure bei mir nicht. Wenn ich mich connecte, lande ich immer in einem unbestimmten Verzeichnis, in welchem ich keine Rechte oder ähnliches habe. Ein ChangeDirectory funzt auch nicht.
Delphi-Quellcode:
2.
procedure TForm1.IdFTPServer1AfterUserLogin(ASender: TIdFTPServerContext);
begin ASender.HomeDir := '\\apollo\daten\edv\_tmp'; ASender.CurrentDir := '\\apollo\daten\edv\_tmp'; //ASender.CurrentDir := '/'; //ASender.HomeDir := '/'; end; funktioniert bei trotz u.g. der Anonymous Login. Jemand eine Idee?
Delphi-Quellcode:
Wäre für jeden Tipp dankbar.
procedure TForm1.IdFTPServer1UserLogin(ASender: TIdFTPServerContext;
const AUsername, APassword: string; var AAuthenticated: Boolean); begin if idftpserver1.active = true then begin AAuthenticated := False; if ('test' = AUsername) and ('test' = APassword) then begin AAuthenticated := True; ASender.HomeDir := '\\apollo\daten\edv\_tmp'; ASender.CurrentDir := '\\apollo\daten\edv\_tmp'; end; end else AAuthenticated := False; // We just set AAuthenticated to true so any username / password is accepted // You should check them here - AUsername and APassword //AAuthenticated := True; end; |
Re: INDY 10 FTP
Hallo,
kann es sein, dass Du bei ASender.HomeDir einen absoluten Pfad eintragen solltest?
Delphi-Quellcode:
Grüße
ASender.HomeDir := 'd:\ftproot';
Klaus |
Re: INDY 10 FTP
Ja Klaus, das wars.
Die Workingdirectory ist jetzt die richtige. Zum Anonymous auch ne Idee? |
Re: INDY 10 FTP
Setzt du AAuthenticated vllcht später nochmal auf TRUE? Kannst ja auch mal testen die dcu zu löschen und das ganze neu zu kompilieren..
|
Re: INDY 10 FTP
Zitat:
Seltsam, seltsam |
Re: INDY 10 FTP
Irgendwie kann ich die Logic noch nicht nachvollziehen:
Delphi-Quellcode:
Warum prüfst du ob der ftpserver aktiv ist? Wenn er nicht aktiv ist würde doch dieses Ereignis nicht augelöst werden oder? Und warum vergleichst du active mit der constanten true? Was wäre wenn active 2 ist und somit wahr ist aber eben nicht true aber auch nicht false.
procedure TForm1.IdFTPServer1UserLogin(ASender: TIdFTPServerContext;
const AUsername, APassword: string; var AAuthenticated: Boolean); begin if idftpserver1.active = true then begin AAuthenticated := False; if ('test' = AUsername) and ('test' = APassword) then begin AAuthenticated := True; ASender.HomeDir := '\\apollo\daten\edv\_tmp'; ASender.CurrentDir := '\\apollo\daten\edv\_tmp'; end; end else AAuthenticated := False; // We just set AAuthenticated to true so any username / password is accepted // You should check them here - AUsername and APassword //AAuthenticated := True; end; und warum setzt du AAuthenticated auf False vor dem Test anstelle ein "else" zu nehmen und gleichzeitig arbeitest du aber mit Else bei der äußeren Bedingung. Warum machst du es einmal so und einmal anders? |
Re: INDY 10 FTP
Vielleicht erscheint es so etwas aufgeräumter.
Delphi-Quellcode:
Gute Nacht
procedure TForm1.IdFTPServer1UserLogin(ASender: TIdFTPServerContext;
const AUsername, APassword: string; var AAuthenticated: Boolean); begin AAuthenticated := ('test' = AUsername) and ('test' = APassword); if AAuthenticated then begin ASender.HomeDir := '\\apollo\daten\edv\_tmp'; ASender.CurrentDir := '\\apollo\daten\edv\_tmp'; end; end; Klaus |
Re: INDY 10 FTP
Zitat:
Zitat:
|
Re: INDY 10 FTP
an dem Pfad alleine kann es nicht liegen. Schließlich sind beides absolute Pfade und das Handling ist dem Programmierer überlassen, sprich die Pfade müssen nicht real existieren.
|
Re: INDY 10 FTP
Zitat:
Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz