Autor Beitrag
campino84
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 22.10.13 14:28 
Hallo,

ich habe über die Suche leider keinen passenden Thread gefunden der mein Problem bereits abdeckt. Sollte dennoch einer existieren bitte ich um Entschuldigung und ihr könnt mir ja den Link zu dem Thread hier posten.

Ich bin neu hier und habe ein kleines Problem bei einer Programmierung.

Ich bin dabei ein kleines Tool zu schreiben was automatisiert eine ganze Liste von Dateien von einer Website lädt.

Wenn ich manuell im Webbrowser den Link:
"https://domainname.de/was_auch_immer_noch_kommt/xyz&Format=Excel"

in einen Browser eingebe geht automatisch eine Dialogbox wo ich öffnen, speichern oder abbrechen kann.

Dies schaffe ich auch in einer WinForm mit einem Webbrowser-Element. (noch keine Kunst)

Es sind aber jeden Monat etliche dieser Dateien zu laden. (bis zu 2000/Monat).
Die URLs bekomme ich durch Vorarbeit bzw. ein anderes Programm in einer Exceltabelle. Diese kann ich ja auslesen und für jede Zeile den Download starten.
Derzeit einfach über den Befehl:
webbrowser1.navigate(new Uri @"<Link-String>");

Das Problem ist, ich muss mich erst bei der Seite anmelden, sonst komme ich nicht an die Dateien. Die Anmeldung läuft über die Windows Live ID.

Jetzt zu meinem Problem: Ist es möglich das angesprochene Dialogfeld abzuschalten und die Dateien einfach in einem Ordner den ich noch irgendwo mitgebe abzulegen?

Falls Ihr noch irgendwelche Informationen benötigt dann schreibt einfach.
Ich verwende Visual Studio 2010 Premium.

Danke schon mal für eure Hilfe
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 22.10.13 15:10 
Hallo und :welcome:

wenn du automatisch Dateien herunterladen willst, dann solltest du besser die Klassen WebRequest und WebResponse verwenden.
Im Internet nach "c# download web file login" gesucht ergibt z.B.
C# download file from the web with login
Oder auch Datei laden mit WebRequest/ Problem beim Login
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 22.10.13 15:23 
WindowsLiveID basiert glaube ich auf OAuth 2.0.
Du könntets dich mal mit DotNetOpenAuth rumschlagen ob man da einen unattended login hinbekommt.
Wenn das klappt wirds aber bestimmt ziemliches gebastel. OAuth (gerade 2.0) ist einfach nicht für simple Sachen gedacht ;)
campino84 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 22.10.13 16:08 
Danke erst mal für eure Antworten.

Genau weil ich diese Authentifizierung benötige, war mein bisheriger Lösungsansatz das ich die Seite über ein Webbrowser-Element öffne, mich einlogge und dann die Datei anfordere.

Die Anforderung besteht ja aus mehreren Teilen. Ich kann den Link hier leider nicht komplett freigeben, aber er besteht nach der Adresse aus einer Mitgliedsnummer und einer weitern Vorgangsnummer .Dann wird eine Exceltabelle erzeugt und zurückgegeben die alle Einträge zu dem Vorgang beinhaltet.

Mein nächster Schritt wäre dann eigentlich nur noch das ich diese Meldung unterdrücke, bzw. abfange und die Option speichern verwende.

Optimal wäre dann noch wenn ich einen Pfad und Dateinamen mitgeben kann.

Wenn sich dies eventuelle auch mit dem Webbrowser-Steuerelement realisieren lässt würde ich das bevorzugen. Das hätte auch den Vorteil jeder das Tool verwenden kann der über den WLID-Login Zugang zu der Seite hat.