Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Clientverwaltung mit idFTPServer (https://www.delphipraxis.net/73910-clientverwaltung-mit-idftpserver.html)

Gentleman 25. Jul 2006 14:59


Clientverwaltung mit idFTPServer
 
Hallo!

Ich habe vor mir mit dem idFTPServer (Indy 10) einen eigenen FTP Server zu schreiben. Ich habe dazu schon die Demo, von den Indy Demos angesehen und habe auch einen im Grunde lauffähigen Server, sprich die Clients können sich mit Benutzernamen und Passwort anmelden und die ihnen zugewiesenen Verzeichnisse bearbeiten.

Mein Problem ist nun die eigentliche Benutzerverwaltung. Wie kann ich die Benutzer so in meinem Programm speichern, dass ich jederzeit Informationen von verscheidenen Clients abrufen, und sie verwalten kann?

Ich stelle mir das in etwa so vor, dass ich über die IP (oder ähnliches) einen Client ansprechen kann, Informationen abrufen und zum Beispiel die Verbindung des Clients zum Server unterbrechen kann.

Leider habe ich noch keinen richtigen Ansatz, wie ich das Problem angehen kann, denn vor allem das Speichern der verschieden Clients bereitet mir Probleme. Wäre froh um einige Ideen, wie man die Clients verwalten kann.


Vielen Dank!

Gruß,
Lennard

DGL-luke 25. Jul 2006 15:04

Re: Clientverwaltung mit idFTPServer
 
Naja...

Delphi-Quellcode:
type
  TUser = class(TObject)
    Name, Passwort: string;
    Verzeichnis: string;
    Admin: Boolean;
  end;

  TUserConnection = class(TObject)
    User: TUser;
    Client: TCustomIPSocket // bzw. das Indy-Gegenstück, das dir sicher übergeben wird
   
    procedure CutOff;
  end;
Das wär mal ne Architektur, die du dann zum Beispiel in XML speichern könntest.

Gentleman 25. Jul 2006 15:35

Re: Clientverwaltung mit idFTPServer
 
Das wäre wohl eine gute Lösung, allerdings kann ich immer nur ein Datensatz zur Zeit in das Object schreiben. Da aber nicht immer nur ein Client zur Zeit zum Server verbunden ist, bräuchte ich also eine Methode, um diese Objekte in einer art Array zu speichern, wo ich sie jeder zeit bearbeiten und löschen kann, ist das möglich?

DGL-luke 25. Jul 2006 15:37

Re: Clientverwaltung mit idFTPServer
 
Hmm... Delphi-Referenz durchsuchenTObjectList?

Gentleman 25. Jul 2006 15:58

Re: Clientverwaltung mit idFTPServer
 
Okay, damit wär das Problem ja eigentlich schon so gut wie gelöst. Danke!

eine Frage allerdings noch: Welches ist das Indy Gegenstück zu TCustomIPSocket?

Gentleman 26. Jul 2006 20:04

Re: Clientverwaltung mit idFTPServer
 
Sorry, das ich pushe... aber hat wirklich keiner eine Ahnung, was ich anstatt "TCustomIPSocket" bei Indy verwenden kann?? Wäre echt super, wenn mir da jemand weiterhelfen könnte.

Gruß,
Lennard

DGL-luke 26. Jul 2006 20:15

Re: Clientverwaltung mit idFTPServer
 
Naja, mal sehen... du hast doch beim TIdFTPServer.OnConnect-Ereignis den Peer-Thread. kann man das nicht entsprechend verwerten?

SirThornberry 26. Jul 2006 20:29

Re: Clientverwaltung mit idFTPServer
 
doch kann man. Der Thread bzw. die Idee ist anschließend bei allen Aktionen die gleiche. Und der Username etc. ist auch darin enthalten. Man kann es also immer über den Thread ansprechen.

Gentleman 26. Jul 2006 22:53

Re: Clientverwaltung mit idFTPServer
 
hey,

habe ich das richtig verstanden, dass die AContext Variable aus der Prozedur gemeint ist?

Delphi-Quellcode:
procedure TForm1.IdFTPServer1Connect(AContext: TIdContext);
Allerdings ist hier doch nicht der Username gespeichert, oder? Der Username wird doch erst im UserLogin Ereignis übergeben oder nicht?

Delphi-Quellcode:
procedure TForm1.IdFTPServer1UserLogin(ASender: TIdFTPServerContext;
  const AUsername, APassword: string; var AAuthenticated: Boolean);

würde mich freuen, wenn mir das jemand nochmal etwas näher bringen könnte :stupid:


vielen Dank!

Gruß,
Lennard

DGL-luke 27. Jul 2006 08:18

Re: Clientverwaltung mit idFTPServer
 
also wenn das so ist, haben wir da grad versionshölle... bei den im BDS 2006 (Pro SSL) mitgelieferten Indys handelt es sich afaik um Indy 10. und da siehts so aus:

Delphi-Quellcode:
procedure TForm1.IdFTPServer1Connect(APeerThread: TIdPeerThread);
begin

end;
Das hab ich jetzt mal aus dem Gedächnis getippt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz