nUpdate - Die komfortable Updatelösung

    • Release
    • Open Source

    Es gibt 846 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

      Ja, ich habe zuerst nicht verstanden, was Du mit Benutzerkontrolle meinst, weil Du das etwas komisch ausgedrückt hast. Du dachtest dann wohl an Closed Betas bzw. gewisse Abteilungen. Da macht sowas schon Sinn.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Update auf Version 3.0.0 Beta 7
      • Fixed a bug that caused that updates were not installed in the correct order when marking any of them as "Necessary"
      • Added a property HttpAuthenticationCredentials to the UpdateManager class for providing credentials that can be used for authentication on the server, if a .htaccess file is limiting the access to specific users

      @Mokki Ich hoffe, dass ich das beheben konnte. Die Updates sollten jetzt in der richtigen Reihenfolge installiert werden. Hab's nicht ausgiebig getestet, aber ein Durchlauf vorher und nachher brachte entsprechende Ergebnisse.
      @SvenS Es gibt jetzt eine Property HttpAuthenticationCredentials, die verwendet werden kann, um Anmeldedaten anzugeben. :)

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Nutze die Software in meinem neuen Projekt und bin begeistert von der einfachen Handhabung! Freut mich, die DLL kostenfrei nützen zu dürfen :)
      Ich hab mir die neuste Version jetzt heruntergeladen. Muss ich dann die DLL in meinem Projekt austauschen oder welche Änderungen muss ich sonst noch vornehmen.
      Die Downloadlinks im Startpost sind übrigens noch nicht aktualisiert.

      Lg Mokki
      ​Smartnotr - ein intelligentes Notizprogramm
      zum Thread

      @KingTimon Danke. :) Freut mich.
      @Mokki Ja genau. Der UpdateInstaller liegt in der DLL selbst, sodass Du diese aktualisieren musst. Am einfachsten geht das immer über NuGet.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Moin,

      ich habe jetzt wieder ein wenig Zeit gefunden, um etwas weiterzuentwickeln. Aktuell überlege ich, wie die Projektverwaltung angegangen werden soll.
      Meine Idee war jetzt, das Ganze an das System von Visual Studio anzulehnen. Es gibt die Projektdatei (*nupdproj) und dann assoziiert eben noch die Pakete, die Updatekanäle und diverse andere Dateien. Alles liegt in einem festgelegten Projektordner. In dieser Projektdatei werden die zugehörigen Elemente dann mit einem relativen Pfad adressiert.
      Somit ist es z. B. auch möglich, dass man den Projektordner in OneDrive lokalisieren kann und ihn somit überall zur Verfügung hat. Auch die Einpflegung in git wäre somit kein Problem.

      Jetzt gibt es allerdings hier Probleme: Momentan darf man die Projektdatei nicht weitergeben, da dort der private Schlüssel sowie das Passwort für den FTP-Zugang (verschlüsselt) gespeichert ist. Das soll sich aber ändern. Meine Idee war jetzt, diese Daten pro Projekt in eigenen Dateien abzulegen und nur einen Uri darauf zu speichern. Allerdings wird es dann eben schwierig, das Projekt auf verschiedenen PCs zu nutzen, da diese Dateien ja fehlen bzw. irgendwo auf dem anderen PC liegen. Mitliefern ist logischerweise aber auch schlecht. ;)
      Daher frage ich mich jetzt, wie ich da am besten vorgehen sollte, um es derart komfortabel zu machen, aber dennoch die Sicherheit beizubehalten. Ich könnte natürlich sagen, dass der Benutzer ein Master-PW festlegen muss und damit alles via AES verschlüsselt wird. Dann hätte ich da kein Problem mehr, denn ich müsste ihn das nur immer beim Öffnen des Projektes eingeben lassen. Jedoch wurde explizit schon mal geäußert, dass es für den Benutzer angenehmer wäre, wenn er das nicht immer eingeben muss. Insofern wurde ja damals die automatische Speicherung mit einem festen Passwort eingeführt, was natürlich sicherheitstechnisch auch Ranz ist.
      Genau da liegt mein Problem. Hat jemand hierzu Ideen?

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      wie wäre es mit einem "Web-Portal" auf dem man sich authentifizieren muss und von dem man dann eine Auth-Datei oder einen Auth-Code bekommt in der/dem du dann Parameter übergeben könntest.

      Da müsste man sich nur einmal anmelden und hättest dann trotzdem ne Sicherheitsabfrage. Eventuell es wäre da noch eine Idee, dem Nutzer auf der Weboberfläche die Möglichkeit zu geben diese Auth-Dateien /-Code zurückzuziehen. Ähnlich wie bei Telegram und/oder WhatsApp mit den verschiedenen Sessions auf verschiedenen Geräten.
      Frag das Master-Passwort ab und gib dem User die Möglichkeit mit einem Häkchen "Passwort speichern" die Passwortabfrage abzuschalten, indem das Passwort auf dem lokalen Rechner abgelegt wird.
      gleichzeitig sollte die Meldung erscheinen, dass dies "ein Sicherheitsrisiko" darstellt. Auf nem "unbekannten" Rechner wird dann das Passwort erneut abgefragt.
      Post-AGB:
      §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
      §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
      Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
      §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
      Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen
      @Snickbrack An sich ja, aber online Authentifizierung und Anmeldung möchte ich eigentlich vermeiden, da das zu viel Umfang und Aufwand mit sich bringt.

      @EaranMaleasi Okay, das klappt natürlich. Allerdings ist das AES-Passwort dann halt fest irgendwo im Code (wie momentan). Ich wollte es ursprünglich aber nun so einbauen, dass pro PC ein eigenes AES-Passwort generiert wird, wenn es kein Master-PW gibt (zur Erhöhung der Sicherheit). Damit ergibt sich nur wieder obiges Problem mit der Übertragung dieses generierten Passwortes.
      Edit: Ich hab glaub ich falsch gelesen. Das, was Du meinst, ist glaub ich die Lösung.Ich kann ja mit dem Hash des PWs verschlüsseln. Einfach das Passwort abfragen, wenn es nicht da ist, hashen und dann immer den Hash zum Verschlüsseln nehmen. Somit kann ich es überall sicher speichern und gleichzeitig muss man es nicht immer neu eingeben.

      Danke euch auf jeden Fall schon mal. :)

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

      Ooooder, du gibst dem Nutzer ne "Online"-Komponente an die Hand, er läd sich die selbst auf seinen Server und kann sich dann für verschiedene PC's so auth-Dinger generieren lassen.

      Dann wäre der Aufwand bei dir lediglich noch, diese "Seite" anzulegen. Okay, Aufwand macht das auch, aber immerhin weniger, als wenn du sowas auf deiner Seite anlegen müsstest.

      Trade schrieb:

      dass der Benutzer ein Master-PW festlegen muss und damit alles via AES verschlüsselt wird.
      Das hatte ich eig. gemeint. Nicht über ein statisches AES-Passwort.
      Post-AGB:
      §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
      §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
      Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
      §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
      Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen
      @Snickbrack Das Ding ist halt, dass er dann von der Internetverbindung abhängig ist. :D Wenn er nur schnell was abändern will, ist das natürlich nicht so gut.

      @EaranMaleasi Okay, danke. Also nochmal: Benutzer gibt Master-PW ein und kann dieses abspeichern lassen. Dann hashe ich das halt und lagere das in einer Datei, auf die ich einen URI im Projekt selber speichere. Dann kann zwar jeder mit dem Hash alles entschlüsseln, aber dazu muss derjenige eh auf den PC kommen und dann kann ich eh nicht viel machen. Aber immerhin ist das Passwort dann nicht irgendwo im Klartext auf der Platte.
      Dann auf einem anderen PC, wenn die Datei fehlt, kann man ja das Passwort nochmal eingeben und dann mache ich halt dasselbe.
      Wenn der Benutzer den Pfad der Passwort-Datei so setzt, dass sie sich im Projektordner selbst befindet, dann kann ich ja eine Warnung ausgeben, dass er das nicht machen soll.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Ich melde mich hier mal auch wieder zu Wort, denn ich habe ein Problem: Ich würde gerne SFTP nutzen, also die Dateien per SSH übertragen. Gibt es da bereits Pläne? Für mich ist nämlich FTP gestorben und nahezu jeder Server hat einen SSH-Server am laufen. Da braucht man für alles nur einen Port und eine Server-Software.

      Sonst weiter so mit diesem Projekt! Das Beste, was es zur Zeit gibt.
      Alle Angaben sind ohne Gewähr und mit Pistole. Glücksspiel und Drogen können süchtig machen. Weitere Infos unter spielen-mit-verantwortung.de und kenn-dein-limit.de.
      Also Du kannst versuchen, dies über das TransferInterface selber zu implementieren und dann die Assembly halt anzugeben.
      Dann sollte das darüber laufen. Das ist halt nur in der v3.x ziemlich ranzig implementiert (hingeklatscht) und es es ist nicht möglich, aus der Administration heraus irgendwelche Parameter o. ä. zu übergeben. Funktionieren müsste es an sich aber, deshalb habe ich das auch abstrahiert. In der v4, welche noch dauert, wird's dann eh besser implementiert. ;)

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Da brauche ich mehr Infos, was Du da umgesetzt hast. Hast Du eine 3rd-Party-Library verwendet?

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: