also wenn ich das richtig verstanden hab, kannst du im admin programm vom kupdater für ein update einstellen, das er dies unter einen besonderen benutzer machen soll
d.h. der kupdater wird das passwort was ich dort eingebe verschlüsseln und in der config für das update hinterlegen
wenn du nun ein update machst wird er sich das passwort aus der config nehmen und wieder entschlüsseln um dann beim prozess zu verwenden
oder hab ich das verfahren nicht richtig verstanden?
mir gehts im grunde darum das ic hein ähnliches problem habe
ich muß ein programm unter einem anderen context ausführen können, welches ein admin mal angegeben hat
die frage ist nun, wie verwalte bzw. hinterlege ich diese daten richtig?
das primitivste wäre, ich schreib mit benutzernamen und passwort im klartext in eine datei, wo der admin alles eintragen kann und mein programmdas wieder ausliest
da dann jeder 0815 benutzer das auch auslesen könnte wäre das schlecht
also nochmal meine frage:
wie könnte so ein konzept aussehen bzw. wie ist es beim kupdater geregelt?
Beim K_Updater wirds da im Grunde drei Möglichkeiten geben:
1. Vorher werden bereits die Daten zur Impersonifikation mitgeben. So würde die updater.exe bei Bedarf (also wenn für einen Schreibvorgang nicht ausreichend Rechte gegeben sind) das Benutzerkonto gemäß den Angaben aus der Admin-Oberfläche heraus verwenden. Sollten hier Daten falsch angegeben sein oder die Rechte immernoch nicht ausreichen würde der Anwender eine Meldung und könnte dann manuell ein Benutzerkonto angeben.
Diese Variante ist sicherlich nur dann relevant, wenn zum Beispiel eine Anwendung innerhalb einer Firma aktualisiert wird und auf jedem PC das gleiche Admin-Konto verfügbar ist.
2. Es wird vorher kein Benutzerkonto angegeben und bei Bedarf bekommt der Anwender eine Meldung und kann dann das Konto manuell wechseln.
3. Der Updateprozess erwartet von vornherein Adminrechte und startet auch entsprechend. Unter Windows Vista würde das eine Bestätigung des Anwenders erfordern (so wie man diese nervigen Dialoge eben kennt).
Im ersten Falle wird das Passwort verschlüsselt in der entsprechenden XML-Datei abgelegt die sich im Updatepaket befindet.
Sicherlich gibt es bei dieser Möglichkeit auch immer Sicherheitsrisiken. So wird zum Beispiel die Verschlüsselung immer mit dem gleichen Key gemacht. Jedoch ist das ja nur "halb so wild". Denn immerhin kann diese Methode eh nur in einem Umfeld vorkommen in dem ja die Benutzerkonten schon bekannt sind -> Firmenintern. Und an den Key muss man dann ja auch erstmal rankommen um das Passwort zu entschlüsseln.
bin neu hier und wollt mich gerad erstmal kurz vorstellen...*vorstell*
Ersteinmal ein RIESEN Lob an dich EvilMM.
Ein großes Projekt was du da auf dich genommen hast.
Vorallem find ich super wie angagiert du bist und dass man deine komponente fast ohne weiteres in sein bestehendes Projekt integrieren kann...
wie ich's nun auch vorhab...
Ich würde gerne erfahren würde, ob es möglich ist die Dialoge des Updater in seine eigene Windows Form zu integrieren...
d.h. ich würde gerne meine Windowsform mit einem TextFeld und einem Progressbar ausstatten und die Daten vom K_Updater da rein laufen lassen...
Ist das überhaupt möglich?
Wenn ja wie?
Auch würde mich interessieren, was das "inkrementelle-Update-System" macht...
Hallo speedy,
erstmal vielen Dank für das Lob. Ja das Projekt macht schon sehr viel Arbeit und im Moment komme ich auch nur langsam voran, aber es macht dennoch Spaß.
Zu deiner Frage: derzeit gibt es diese Möglichkeit noch nicht. Das steht auf der ToDo-Liste, aber ich find im Moment für sowas die Zeit nicht - da haben andere Sachen Priorität.
Zur nächsten Frage: Es gibt ja mehrere Möglichkeiten. Du könntest in deinen Updatepaketen immer alle Dateien der jeweils aktuellen Version reinpacken.
Also wenn deine aktuelle Version v1.3.0 wäre, dann würde das Update dazu alle Dateien beinhalten für die Anwendung. Somit könnte man von jeder beliebigen vorherigen Version auf v1.3.0 updaten. Bedeutet natürlich auch einen gewissen Overhead. Denn wenn sich von v1.2.0 zu v1.3.0 nur eine Datei geändert hat, so würden dennoch alle Dateien übertragen werden, auch die die sich nicht geändert haben.
Will man die Updates klein halten, so arbeitet man mit inkrementellen Updates. Du packst in das Update von v1.3.0 wirklich nur die Dateien rein die sich seit der vorherigen Version geändert haben. Das bedeutet natürlich, dass du auch nur von der vorherigen Version aktualisieren kannst.
Halloechen....
Wird an K_Update noch gearbeitet? Du hast ja einige sehr geile Aenderungen geplant gehabt. Ich wuerd mich sehr ueber eine aktuelle Version freuen
also ich habe deinen Updater jetzt mal in ein aktuelles Projekt eingebaut und bin begeistert
Ich habe allerdigs an er Administration zu bemeckern. Wenn man dort ein Updatepacket erstellt und dafür relativ lange braucht, dann kappt sich irgendwann die Verbindung mit dem Server. Das führt dann dazu, dass sich das ganze Programm quasi selbst disabled und man es neustarten muss. Das Updatepacket was man erstellen wollte ist futsch. Also im Fall, dass die FTP-Verbindung weg ist, einfach neu öffnen
Vielen Dank erstmal fürs Lob. Der von dir beschriebene Fehler steht auf der ToDo für die nächste Version.
Ein Datum zu nennen ist schwierig. Grundsätzlich ist das Teil schon fast fertig, aber da ich gerade dabei bin das Projekt mit einem Freund zusammen zu programmieren bedarf es hier und dort ein paar Umstrukturierungen so dass eine vernünftige Zusammenarbeit überhaupt möglich ist. Wenn diese Zeit mal vorbei ist sollte das aber ein generell schnelleres Entwickeln ermöglichen.
Dank Mimetyp-Eintrag meines Hosters kann ich den K_Updater nun auch endlich nutzen. An dieser Stelle nochmals herzlichen Dank für Deine Arbeit.
Nun hat mir allerdings ein Anwender meiner Software mitgeteilt, dass der Update nicht läuft wenn das Programm im Root einer Partition/Laufwerks installiert/kopiert wird.
Sprich die Software war direkt unter D:\ und nicht in einem Verzeichnis. Das Update wurde zwar noch geladen konnte dann aber vermutlich nicht kopiert werden. Fehlermeldung kam keine und auch die log.txt wurde nicht erstellt.
Da es bei mir auch so ist, sieht das wohl nach einem kleinen Bug aus. Über die Sinnhaftigkeit eine Software im Root zu installieren brauchen wir uns wohl glaub ich nicht unterhalten. Es gibt aber wohl immer wieder mal Anwender die das machen werden.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sun am .
Das mit dem MIME-Type Problem ist in der nächsten Version behoben.
Ansonsten habe ich so spontan keine Idee woran das liegen könnte.
Das Logging ist korrekt aktiviert? Die Logdateien liegen dann im Temp-Ordner. Ich werde mir das Problem aber anschauen, komme aber erst am Sonntag dazu.
Da ich im November meine Abschlussprüfung habe, geht es leider nicht immer so schnell voran wie ich selbst gerne möchte :-(
Dennoch geht es voran :-)
In Zukunft wird der Updater also nicht mehr als exe geladen, sondern gezippt. Das sollte die gröbsten Firewallprobleme aushebeln. Zudem erzielt man hierdurch noch eine - wenn auch kleine - Trafficeinsparung:
Zudem werden die Updatepakete dann auch nicht mehr als *.update, sondern als *.zip geladen - so wie es sich gehört :-)
Sehr schön, somit wäre das MIME Type Problem aus gelöst.
Bis jetzt gefällt mir die Komponente sehr gut. Der Update-Dialog hast du schön und minimalistisch designed.
Wann kann man den mit einer neueren Version rechnen? Und welche Neuigkeiten nimmste da mit auf?
wollte dir nur ein riesiges Lob für dieses Softwarepaket aussprechen. Habe das ganze innerhalb von nur zwei Stunden eingebaut und es funktioniert sehr gut. Vielen Dank dafür
Eine Kleinigkeit ist mir beim starten der Administration aufgefallen, siehe Anhang.
hatte dieses Problem auch. Bei mir wars ein Problem mit den Rechten. Überprüf bitte mal die Sicherheitseinstellungen und Benutzerrechte für den Ordner auf dem FTP-Server. Und zwar die Rechte des FTP-Users.
Die Administrationsoberfläche löscht immer erst den angegebenen FTP-Ordner und erzeugt ihn neu (um sicher zu stellen, dass er auch leer ist).
Wenn du also angibst:
/httpdocs/updates/blabla und "blabla" existiert auch, so wird "blabla" komplett gelöscht und wieder erzeugt. Das ist etwas faul, denn besser wäre, wenn nur der Inhalt gelöscht wird (was ich auch in der nächsten Version so umsetzen möchte).
Gibst du wie in deinem Beispiel als Pfad "/" an, so würde der K_Updater zunächste versuchen den Pfad "/" zu löschen (denn er existiert ja). Das ist natürlich quatsch und funktioniert nicht.
Um dein Problem nun zu lösen müsstet du einfach einen Unterordner nehmen, zum Beispiel /updates
Wie auf dieser Seite des Wizards steht, musst du den HTTP-Pfad angeben der auf denn FTP-Pfad zeigt. Du hast den FTP-Pfad angegeben.
Wenn dein FTP-Serverpfad also ftp://einserver.de/updates lautet, so müsstest du den Pfad des HTTP-Server angeben unter dem der oben angezeigte Ordner erreichebar ist, also zum Beispiel http://einserver.de/updates.
mir ist gerade ein Fehler aufgefallen. Kann sein das er schon gepostet wurde, also bitte nicht böse sein wenn ich etwas wiederhole. Folgende Situation:
Ich habe am Anfang der Woche ein Projekt angelegt. Bei diesem habe ich eine volle IP-Adresse als FTP-Server sowie HTTP-Server angegeben, z. B. 10.3.244.121. Das war die IP-Adresse meiner Maschine, also localhost, nur als IP.
Nun bin ich heute draußen beim Kunden in einem anderen Netz mit DHCP und habe die IP 192.168.4.101 bekommen. Logischerweise schafft er es nun nicht mehr, sich zu 10.3.244.121 zu verbinden.
Mein Problem jetzt ist aber, das ich weder die IP-Adresse editieren noch das Projekt löschen kann, weil ich für beide Möglichkeiten eine Verbindung brauche.
Kurz gesagt: Ich kann nicht verbinden, weil die IP geändert ist. Ich kann die IP nicht editieren, weil ich dazu eine Verbindung brauche. Und ich kann das Ding nicht entfernen, weil ich ohne eine Verbindung auch nicht löschen kann. -> Zwickmühle ohne Ausweg.
Lösungsvorschlag: Gib dem User die Möglichkeit, die IP-Adresse zu ändern.
Lösungsvorschlag 2: Lass den User das Projekt löschen.
Umgehungsmöglichkeit 1: Meine eigene IP-Adresse ändern. Umständlich und nervig, aber möglich.
Umgehungsmöglichkeit 2: Ein neues Projekt anlegen. Auch nicht besser :-/
Ich persönlich würde Lösungsvorschlag 1 bevorzugen.
Wenn ich dein Problem nun richtig verstanden habe, hat sich die IP deines FTPs geändert und du kannst von der Administrationsoberfläche aus nicht mehr auf das Projekt zugreifen.
Die Möglichkeit den FTP-Server abzuändern habe ich bereits umgesetzt und wird in der nächsten Version zur Verfügung stehen, siehe hierzu auch: Klick
Es wird also eine Art "FTP-Adressbuch" geben, deren Einträge mit den Projekten verknüpft sind. Somit können dann die Einträge verändert werden und dein Problem wäre somit gelöst.
Um nun aber einmal kurzfristig dein Problem zu beheben öffnest du am besten die Einstellungsdatei vom Updater. Sie liegt in C:\Dokumente und Einstellungen\[BENUTZERNAME]\Lokale Einstellungen\Anwendungsdaten\Klaus_Moster\Administration.exe_Url_[HIERKOMMTNOCHWAS]\1.3.2.0\user.config.
Dort kannst du dann für das entsprechende Projekt den Pfad abändern.
Ich wollte dir noch auf deine PM antworten.
Einen HTTP-Server brauchst du - denn der Updater zieht derzeit die Updates ausschließlich per HTTP. Nur das Einrichten läuft über FTP.
Allerdings ist dies hier nicht der richtige Ort um eine Einführung in das Einrichten von HTTP-Servern zu geben. Willst du es schnell lädst du dir ein XAMP oder ähnliches herunter. Dort müsste es dann weitere Anleitungen geben.
geiles Projekt, werd eich wahrscheinlich in meinen Progs nutzen.
Aber 2 Fragen:
1.) Bei mir hängt das erstellen eines Projektes dort, wo der Server geprüft wird. (Dateien und Ordner sind auf dem FTP vorhanden). Der Link stimmt, ebenso wie der Benutzername und das Passwort. Ist das ein Bug (geh ich mal nicht von aus), oder woran liegt es. (testweise allen Ordnern samt Dateien Rechte 777 gegeben, hat nichts geholfen)
2.) Mit welchem Prog hast du die Setup gemacht? Ist das kostenlos wäre das ziemlich gut für mich, da ich nach etwas suche, was mir das Net Framework vor dem Setup runterzieht und installiert!