Thema: Delphi WebDAV Login Beispiel

Einzelnen Beitrag anzeigen

WiPhi

Registriert seit: 19. Feb 2015
90 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: WebDAV Login Beispiel

  Alt 16. Aug 2020, 16:24
Danke, doch wie ist das mit USERNAME und PAssword. Muss diese auch in die request eingebaut werden? wie?
Ich hab das so gemacht wie oben erwähnt, doch bekomme ich bei dem POST: 501 Not implemented yet.
Liegt das am SERVER?
Danke.
Versuchst du dir URI "login"

Delphi-Quellcode:
webdav.post('https://www.meinzielserver.de/login', Request, Response);
s := webdav.Get('https://www.meinzielserver.de/katzen/katzen.xml');
aufzurufen?

Das wäre falsch.

Ich mach nochmal ein komplettes Codebeispiel:
Delphi-Quellcode:
  // WebDAV Komponente erzeugen
  WebDAVClient := TIdWebDAV.Create;
  WebDAVClient.Intercept := LogEvent;
  // SSL handler zuweisen
  WebDAVClient.IOHandler := OpenSSL;
  WebDAVClient.Request.BasicAuthentication := True;
  WebDAVClient.AllowCookies := True;
  WebDAVClient.HandleRedirects := True;
  // Request konfigurieren
  WebDAVClient.Request.AcceptCharSet := 'utf-8';
  WebDAVClient.Request.CacheControl := 'no-cache';
  WebDAVClient.Request.Connection := 'Keep-Alive';
  WebDAVClient.Request.ContentEncoding := 'utf-8';
  // Login-Daten bei jedem Request mitgeben
  WebDAVClient.Request.Username := 'user';
  WebDAVClient.Request.Password := 'SUPERGEHEIM';

  // Nun mit dem Server kommunizieren, dabei die WebDAV-URI setzen
  // Diese muss immer aktuell zusammengesetzt werden, ich habe dafür ein Unterroutine, welche das in Abhängigkeit des aktuellen Verzeichnisses macht (BuildURI) - darin steckt Protokoll + Server + Resource
  // Download
  WebDAVClient.Get(BuildURL('katzen/katzen.xml'), Dest); // Protokoll + Server + Verzeichnis + Quelldatei, Dest ist ein Stream
  // Upload
  WebDAVClient.Put(BuildURL('katzen/katzen.xml'), Source); // Protokoll + Server + Verzeichnis + Zieldatei, Source ist ein Stream
  // Verzeichnis erstellen
  WebDAVClient.DAVMakeCollection(BuildURL('ein Verzeichnis'));
Also du musst dich nicht explizit an einer Login-Adresse autehtifzieren, sondern jedes mal im Request deine Login-Daten mitgeben. Deswegen ist es bei WebDAV unbedingt zu empfehlen die Daten über eine TLS/SSL Verschlüsselung zu transportieren, sonst hast du em Ende ein FTP, wobei die Daten im Klartext übers Web geschoben werden .
Hoffe das hilft dir weiter
Wer sucht, der findet. Wer länger sucht, findet mehr.
  Mit Zitat antworten Zitat