AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi WebDAV Login Beispiel

WebDAV Login Beispiel

Ein Thema von Ajintaro · begonnen am 11. Nov 2014 · letzter Beitrag vom 29. Mär 2021
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#1

WebDAV Login Beispiel

  Alt 11. Nov 2014, 09:58
Hallo DP,

Ich finde im Netz erstaunlich wenig Beispiele über Delphi und IdWebdav. Da Webdav von HTTP abgeleitet ist, habe ich einfach mal ein Selbstversuch gestartet und eine kleine Demo-Anwendung geschrieben. Diese soll sich auf einem Server einloggen um eine Datei herunterladen zu können:

Delphi-Quellcode:
procedure TForm5.Button1Click(Sender: TObject);
var webdav: TIdWebDAV;
  Request: TStringList;
  Response: TMemoryStream;
  code:integer;
  s:string;
begin
 webdav := TIdwebdav.Create;
 Response :=TMemoryStream.Create;
 Request := TStringList.Create;
  try
          webdav.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
          webdav.Request.BasicAuthentication:= true;
          webdav.Request.Username := 'yourname';
          webdav.Request.Username := 'Katzeklo';
          webdav.AllowCookies := True;
          webdav.HandleRedirects := True;
          webdav.Request.ContentType := 'application/x-www-form-urlencoded';

          webdav.post('https://www.meinzielserver.de/login', Request, Response);

          s := webdav.Get('https://www.meinzielserver.de/katzen/katzen.xml');
          showmessage(s);

        finally
          webdav.Free;
          Response.Free;
          Request.Free;
        end;

end;
Aber das Login wird nie ausgeführt, ich lande immer auf der Loginpage. Wie kann ich denn das Login erzwingen ?
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
786 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: WebDAV Login Beispiel

  Alt 11. Nov 2014, 12:16
Ist die Indy WebDAV-Komponente überhaupt in der Lage, das HTTPS-Protokoll zu verarbeiten? Ich habe mit den Standard-Komponenten, die mit Delphi mitgeliefert werden, bei meinen Versuchen nur mitgeteilt bekommen, dass dieses Protokoll nicht unterstützt wird.

Ich nutze deshalb für WebDAV die Lösung von Eldos.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#3

AW: WebDAV Login Beispiel

  Alt 11. Nov 2014, 13:10
Hmm etwas teuer die Eldos Komponente...
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.839 Beiträge
 
Delphi 2009 Professional
 
#4

AW: WebDAV Login Beispiel

  Alt 11. Nov 2014, 13:11
Ist die Indy WebDAV-Komponente überhaupt in der Lage, das HTTPS-Protokoll zu verarbeiten? Ich habe mit den Standard-Komponenten, die mit Delphi mitgeliefert werden, bei meinen Versuchen nur mitgeteilt bekommen, dass dieses Protokoll nicht unterstützt wird.
Indy unterstützt HTTPS über OpenSSL. Das Problem hier ist die richtige Anmeldung am Server, die schon vor dem Verwenden der WebDAV Protokollerweiterungen fehlschlägt. (Die Art der Anmeldung ist nicht WebDAV-spezifisch).
Michael Justin
  Mit Zitat antworten Zitat
exilant

Registriert seit: 28. Jul 2006
133 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: WebDAV Login Beispiel

  Alt 11. Nov 2014, 13:27
Delphi-Quellcode:
          webdav.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
          webdav.Request.BasicAuthentication:= true;
          webdav.Request.Username := 'yourname';
          webdav.Request.Username := 'Katzeklo';
          webdav.AllowCookies := True;
Ich kenne die komponente nicht, aber du hast zweimal webdav.Username gesetzt. Ist das OK?
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

AW: WebDAV Login Beispiel

  Alt 11. Nov 2014, 13:28
Hi,

kann es sein, dass es hier einen C&P-Fehler gibt:

Delphi-Quellcode:
          webdav.Request.Username := 'yourname';
          webdav.Request.Username := 'Katzeklo';
Viele Grüße,
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#7

AW: WebDAV Login Beispiel

  Alt 11. Nov 2014, 13:38
Huch! Ja das war ein klassischer copy/paste Fehler. Ich habe ihn behoben, das Ergebnis ist unverändert: es erfolgt kein Login. Im String "s" ist lediglich der HTML Output der Anmeldeseite.
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
367 Beiträge
 
#8

AW: WebDAV Login Beispiel

  Alt 15. Aug 2020, 15:53
Webdav mit 10.4 sydney und mit dem GetIT Tools von /n Software IPWorks.


Hallo
ich habe mir in Delphi 10.4 die IPWorks 2020 GetiT Toolbox heruntergeladen. Auch ist da ein Webdav Beispiel drin.
Doch ich habe https und bekomme immer 151: 403 Forbitten.

Was kann ich da machen? MIt CarotDAV hab ich auf meinenm WEbDAV Server kein Problem.
Danke für jeden Rat.
mfg
ws
  Mit Zitat antworten Zitat
WiPhi

Registriert seit: 19. Feb 2015
74 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: WebDAV Login Beispiel

  Alt 15. Aug 2020, 21:16
Also ich habe WebDAV mit Indy ohne Probleme am laufen. WebDAV ist ja nur ein Aufsatz auf das Indy Http.

Bei mir klappts wie folgt:
Instanz erzeugen + SSL + Authentification + den Request konfigurieren:
Delphi-Quellcode:
  WebDAVClient := TIdWebDAV.Create;
  WebDAVClient.Intercept := LogEvent;
  WebDAVClient.IOHandler := OpenSSL;
  WebDAVClient.Request.BasicAuthentication := True;
  WebDAVClient.AllowCookies := True;
  WebDAVClient.HandleRedirects := True;
  WebDAVClient.Request.AcceptCharSet := 'utf-8';
  WebDAVClient.Request.CacheControl := 'no-cache';
  WebDAVClient.Request.Connection := 'Keep-Alive';
  WebDAVClient.Request.ContentEncoding := 'utf-8';
Anschließend ein Listing aus dem Root-Verzeichnis abfordern:
Delphi-Quellcode:
  Response := TMemoryStream.Create;
  try
    try
      WebDAVClient.DAVPropFind(URL, nil, Response, '1', 1, 1);
    except
      on E: EIdHTTPProtocolException do
        raise ELoginCredentialError.Create(E.Message);
    end;
    WebDAVXml.LoadFromStream(Response);
{$IFDEF DEBUG}
    WebDAVXml.SaveToFile('WebDAVResponse.xml');
{$ENDIF}
  finally
    Response.Free;
  end;
WebDAVXml ist ein TXmlDocument für die Serverantwort vom WebDAV. Wir verwenden das Apache WebDAV-Modul, aber das sollte keine Rolle spielen.
Wer sucht, der findet. Wer länger sucht, findet mehr.
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
367 Beiträge
 
#10

AW: WebDAV Login Beispiel

  Alt 15. Aug 2020, 23:33
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf