Autor Beitrag
LuMa86
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Sa 17.11.12 16:17 
Moin,
ich versuche gearde eine Update-Funktion in mein Tool zu basteln. Als Server für das Update, nutze ich die Website, die ich mit meinem 1&1 Zugang gestellt bekomme. Hier gibt es ja FTP. Leider kann ich die Datei nicht mit TIdHTTP herunterladen, daher muss ich auf FTP zurückgreifen (das ist leider ziemlich überdimensionert, jedoch kann ich TrvialFTP nicht nutzen, da es keine Anmeldung unterstützt und ich auch den Benutzername, sowie das Passwort nicht auf dem 1&1 FTP-Server rausnehmen kann). Bei 1&1 gibt es aber das Problem, das die Methode "Get", also eine Datei herunterladen eine UAC-Nachricht aufruft, die die Kommunikation unterdrückt, bis der Benutzer OK klickt und das Programm durch die Firewall zulässt. Das stellt ein Problem für mich da:
Das Programm updatet sich Nachts (Boot via BIOS, dann 1-3 Neustarts, weil Software installiert wird. Anschließen herunterfahren). Allerdings kann der User hier dann ja nicht die Abfrage bestätigen, wer sitz den schon um 3Uhr Nachts am PC?! Deshlab brauche ich eine andere Lösung, mir würde spontan eine einfallen, die hat aber einen Hacken:

Ich bastel eine Manifest-Datei mit an das Programm, so das es als Administartor ausgeführt wird. Allerdings wird der PC ja ausgemacht. Wenn die Anwendung startet, kommt ja wieder eine Abfrage. Und hat die Admin Abfarge überhaupt was mit der oben genannten Abfarge zu tun, oder kommt die dann trotzdem. Dann wäre diese Möglichkeit auch begraben.

Ansonsten könnte ich die UAC deaktivieren oder die Sicherheitsstufe niedriger setzten, das würde ich aber nur sehr ungern und nur als Notlösung machen.

One-Click Hoster würden sich auch anbieten, aber wie ist das mit den Wartezeiten und der Sicherheit?

Ich hoffe das lässt sich irgendwie lösen, vllt. habt ihr ja auch noch Ideen :)

Danke,
Lukas

[EDIT] Eine weitere möglichkeit wäre es mit Apache oder den Indy einen eigenen HTTPServer aufzusetzen, der das ganze als direktlink besitzt, um es via. TIdHttp1.Get() zu laden.
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: So 18.11.12 01:31 
Sry, aber: hä? Was hat denn die UAC mit 1&1 zu tun? Dein Problem scheint zu sein, dass die Client-Firewall nachfragt, bevor eine Datei per FTP heruntergeladen werden darf, das kann ja wohl kaum vom Provider abhängen.
LuMa86 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: So 18.11.12 10:30 
Ja sorry, hab es etwas umständlich formuliert. Ich das Problem, das man ja erst bestätigen muss, bevor Windows ein Programm durch die Firewall zulässt. Das ist meistens bei Server-Komponenten zu. Aber mir ist aufgefallen, dass das auch bei TIdFTPClient.Get(); der Fall ist. Nicht bei aktive, sondern bei .Get. Und es kann nunmal niemand diese Nachricht Nachts um 3 bestätigen. Deshalb wollte ich es mit HTTP versuchen. Das hat bei Indy ja auch .Get. Das Problem ist nur, das die KOmponente Probleme mit der Anmeldung hat, denn ich wollte meinen 1und1 FTP-Speicher nutzen.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 18.11.12 23:55 
Moin!

Mach einen Dienst aus dem Updater, dann fragt da auch keiner was. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 19.11.12 11:20 
Wobei dir hoffentlich klar ist, dass du deine Zugangsdaten auf dem Präsentierteller mitlieferst, wenn du FTP benutzt, evtl. sogar direkt per Notepad aus der Exe auslesbar...
Das heißt dafür solltest du zumindest dringend einen eigenen Benutzer anlegen, der nur Leserechte hat.

Ob Dienst oder nicht, wenn der Benutzer den Eintrag in seiner Firewall nicht setzt, funktioniert es so oder so nicht. Es gibt ja nicht nur die Windows-Firewall...
Sinnvoller wäre daher den bei der Installation zu setzen (z.B. den Updater starten und vorher den Benutzer zu bitten die Firewall zu bestätigen). Dann funktioniert es hinterher auch nachts.
LuMa86 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Mo 19.11.12 19:32 
@narses: Davon wollte ich erstmal absehen, die ich noch nie mit Diensten gearbeitet habe. Aber wenn das so viele Probleme löst, dann wird es langsam Zeit :)
@jaenicke: Echt? Das wusste ich nicht. Das sollte ich vllt. überdenken. Allerdings gibt es in dem Sinn keine Installation, das es nur eine einzelne EXE ist.