none
FTP-Download mit credentials RRS feed

  • Frage

  • Hallo Forum,

    ich suche nun seit Stunden nach einer Möglichkeit mit einer UWP Programmierung einen FTP Download, auch anzeigen einer Dateiliste von einem FTP Server (mit credentials) zur programmieren. Der FtpWebRequest scheint es ja unter UWP nicht zu geben. Wie kann ich nun auf einem FTP Server aus einem UWP zugreifen.

    Danke und Gruß

    Gerhard

    Freitag, 1. Juli 2016 10:00

Antworten

  • Hallo Gerhard,

    das Beispiel baut auch auf Windows 8 auf, aber die APIs haben sich zwischen Windows 8 Store Apps und UWP nur relativ wenig verändert. Und in UWP gibt es eine WebRequest Klasse.

    FTP ist natürlich eine Möglichkeit für den Dateitransfer, das bestreite ich nicht. Nur hat man bei anderen Techniken deutlich mehr Möglichkeiten und teilweise sind die auch einfacher zu handhaben - wenn auch manchmal mit Mehraufwand. Ich hätte vermutlich auf ein HTTP POST gesetzt.

    Authentifizieren sollte man sich so oder so. In den meisten Infrastrukturen ist aber ein Datenbankbenutzer schneller angelegt und verwaltet als ein FTP Nutzer, einfach weil man ersteres oftmals schon integriert hat. Des weiteren kannst du noch einen API Key o.ä. vom Client verlangen um sich zu authentifizieren. Das kann etliche Vorteile bieten, wenn du das nicht brauchst gibt's mit FTP aber auch keine Probleme.

    Das ich die Sache mit dem Authentifizieren überhaupt erwähnte liegt aber eher daran, dass praktisch kein Anfänger darüber nachdenkt dass man Passwörter nicht in der App selbst hinterlegen sollte und ich ohne drüber nachzudenken das mittlerweile immer erwähne wenn ich eine Frage beantworte - für den Fall, dass mal jemand anderes das liest.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 1. Juli 2016 20:45

Alle Antworten

  • Hallo Alexander,

    ja,über dieses Beispiel bin ich auch gestolpert. Beim genauen schauen aber zeigt sich das es nicht funktionieren kann.

    Die gelisteten Namespace passen nicht mit FtpClient ftpClient = new FtpClient(); zusammen. Unter UWP gibt es keinen "FtpClient".
    Microsoft muß sich doch auch Gedanken gemacht haben wie das funktionieren kann.

    Danke und Gruß
    Gerhard

    Freitag, 1. Juli 2016 12:20
  • Hallo Gerhard,

    hast du dir schon mal Microsofts Download FTP file in Windows Store app Beispiel angesehen? Das stammt zumindest wirklich von MS, auch wenn das nicht immer viel zu sagen hat.

    Ansonsten besteht noch die Möglichkeit eines Background Transfers - aber der unterstützt soweit ich mich erinnere nur den Download von FTP Servern.

    Wenn ich aber darüber nachdenke warum FTP nicht mehr so richtig unterstützt wird kann ich es recht gut verstehen. Erstmal müssen auf der Client-Seite Anmeldedaten vorhanden sein die nicht sicher aufbewahrt werden können. Weiterhin ist FTP nicht gerade das schnellste.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 1. Juli 2016 15:22
  • Hallo Tom,

    danke für den Link. Das Beispiel ist aber nicht für UWPs, da gibt es keinen "WebRequest" das sieht mir noch nach Windows 8 oder 8.1 aus. Aber gut ich habe mir nun eine Lösung mit den "StreamSockets" gebaut. Mußte zwar viel zu Fuß gemacht werden, aber auch das funktioniert nun in einem UWP. Warum FTP, mir ist nichts besseres eingefallen um Dateien (so zwischen 10-50K) auf eine Server zu bekommen und auch wieder zurück laden zu können.

    Aber wie soll dann ein Dateien Austausch gemacht werden wenn man nicht gleich eine ganze Infrastruktur mit einem DB-Server aufbauen will ?? Zudem müssen auch hier Zugangsdaten hinterlegt werden und an einen Server zu kommen, das Argument passt nicht.

    Gruß
    Gerhard

    Freitag, 1. Juli 2016 20:19
  • Hallo Gerhard,

    das Beispiel baut auch auf Windows 8 auf, aber die APIs haben sich zwischen Windows 8 Store Apps und UWP nur relativ wenig verändert. Und in UWP gibt es eine WebRequest Klasse.

    FTP ist natürlich eine Möglichkeit für den Dateitransfer, das bestreite ich nicht. Nur hat man bei anderen Techniken deutlich mehr Möglichkeiten und teilweise sind die auch einfacher zu handhaben - wenn auch manchmal mit Mehraufwand. Ich hätte vermutlich auf ein HTTP POST gesetzt.

    Authentifizieren sollte man sich so oder so. In den meisten Infrastrukturen ist aber ein Datenbankbenutzer schneller angelegt und verwaltet als ein FTP Nutzer, einfach weil man ersteres oftmals schon integriert hat. Des weiteren kannst du noch einen API Key o.ä. vom Client verlangen um sich zu authentifizieren. Das kann etliche Vorteile bieten, wenn du das nicht brauchst gibt's mit FTP aber auch keine Probleme.

    Das ich die Sache mit dem Authentifizieren überhaupt erwähnte liegt aber eher daran, dass praktisch kein Anfänger darüber nachdenkt dass man Passwörter nicht in der App selbst hinterlegen sollte und ich ohne drüber nachzudenken das mittlerweile immer erwähne wenn ich eine Frage beantworte - für den Fall, dass mal jemand anderes das liest.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 1. Juli 2016 20:45
  • Hallo Tom,

    danke für die Hinweise. Ja HTTP Post wäre auch noch eine Möglichkeit gewesen. ich hatte nicht so weit darüber nachgedacht. So nach dem Motta "Du hast ja was das war bisher gut, nun ja ..."

    Danke und Gruß
    gerhard


    Samstag, 2. Juli 2016 12:23