Passwort für XML-Dokument

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 36 Antworten in diesem Thema. Der letzte Beitrag () ist von Noyne.

    INOPIAE schrieb:

    Damit niemand den Inhalt sehen kann?

    INOPIAE schrieb:

    Oder soll niemand die Einträge ändern können?
    Ahm, beides am besten ^^
    Ich schreibe eine Anwendung, wo Pflegeheimbewohner mit ihren Medikamenten, Ärzten, Medikationen usw. usw. verwaltet werden sollen und die Datein landen alle in einem XML-File ("DataSet-File") und das gilt es so gut es geht vor "Idioten von außen" (also Leuten, die es ganz lustig finden, Patient XY 10 Tabletten am Morgen "verschreiben" zu müssen statt einer ...) zu schützen. Ich will einfach nicht, dass irgendjemand an den Daten rummanipuliert!!
    Vorher hatten wir eine Access-DB. Die hatte ein Passwort, das nur eine Handvoll Leute wussten. Da ging das irgendwie einfacher ...

    INOPIAE schrieb:

    signiere die XML-Datei
    Das guck' ich mir auch noch an und entscheide dann, was ich nun mit der Datei mache.
    Danke schön ;)
    Your computer is running... You better go chase it! :P :D
    Wenn die Datei signiert ist, kannst du zwar feststellen, ob sie manipuliert wurde, aber vor Manipulation schützen kannst du sie nicht.
    Stell die Datei in ein Server-Verzeichnis und vergib diesem Verzeichnis Lese- und Schreibrechte für die Personen, die lesen bzw. schreiben dürfen.

    Alles andere ist unprofessionell.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Da die Daten, die Du verarbeiten willst auf jeden Fall dem Datenschutz unterliegen, solltest Du Dir ein vernünftiges Zugriffsrechte-Konzept überlegen. Des Weiteren solltest Du Dir noch eine vernünftige Versionskontrolle der Datenveränderungen überlegen. (Du musst ggf. nachweisen können, wer die Tablettenmenge von 2 auf 10 erhöht hat.)
    Für sowas nutzt man dann zur Speicherung einen vernünftg abzusicherndes Datenbank-Backend. Dazu gehört auf jeden Fall keine XML-Datei.
    Du kannst hier ruhig eine Access-Datenbank als Backend verwenden. Wenn Du mit .Net die Oberfläche erstellst, muss Access nicht auf den Rechnern installiert sein. (Access ist für mich allerdings nicht unbedingt die erste Wahl als Datenbank-Backend.)
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).

    Noyne schrieb:

    Vorher hatten wir eine Access-DB.
    Warum seid Ihr davon abgegangen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich bin davon abgegangen, weil es leichter zu handlen ist als die Access-DB ...
    Ich kann mir die ewiglangen SQL-Commands sparen, muss nicht auf die Syntax achten usw.

    Ich hatte eben die Idee, die XML-Datei zu verstecken und im Programm die Möglichkeit einzubauen, als Datensicherung eine Access-DB mit Passwort generieren zu lassen. Hab da dieses Database-Generator hier gefunden und werde mal gucken, ob und wie ich da vielleicht auch was einbauen kann ...

    Kann ich auf eine versteckte XML-Datei trotzdem normal zugreifen?? Also, readen und writen?!
    Your computer is running... You better go chase it! :P :D

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

    Noyne schrieb:

    weil es leichter zu handlen ist
    Du kannst auch eine Access-Tabelle in ein typisiertes DataSet packen und den Rest wie bei Deiner XML.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe ja auch eine "Grund"-Access-DB, deren Daten in ein typ. DataSet reingeholt werden und mit dem ich dann weiterarbeite.
    Ich wollte nur eben gern in der nächsten Version komplett auf die Access-DB im Hintergrund verzichten und nur noch mit dem DataSet arbeiten und da wäre die Möglichkeit, aus dem DataSet eine neue Access-DB zu generieren und die DS-Datei eben zu verstecken eigentlich ganz ... günstig ...
    Your computer is running... You better go chase it! :P :D
    Und wenn Du die Access-DB Deinem DataSet als DataSource zuweist?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi

    bei deinen Anforderungen würde ich zum MS SQL (Express) raten.

    Vor allem, wie auch schon erwähnt, bau eine Historie mit ein. Welcher User hat wann was geändert. Bei allen einfachen Feldern auch OldVlaue und NewValue.

    Gruß
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.

    RodFromGermany schrieb:

    Und wenn Du die Access-DB Deinem DataSet als DataSource zuweist?
    Oh?! Verrätst du mir vielleicht noch wie?! Davon hab' ich auch noch nicht gehört ...

    MrTrebron schrieb:

    Welcher User hat wann was geändert.
    Multi-User-Sachen brauch' ich im Moment noch nicht. Vorerst soll das Ganze erstmal auf einem Rechner laufen. Trotzdem soll niemand die Daten manipulieren können.
    Your computer is running... You better go chase it! :P :D
    Auch wenn du noch keinen Multiuser Support brauchst, was also heißt das alle unter dem gleichen Namen in der Datei Medikamente verschreiben, sollte man das direkt mit einbauen wenn es später mal kommen könnte.

    Bis dahin nimmt man halt einen Dummy User her.

    Ich würde allerdings so schnell wie es geht mit Usern starten, wenn du schon nicht möchtest das jeder in der Datei rumfuchtelt dann solltest du auch dafür sorge tragen das man sehen kann wer da die Medikation geändert hat. Vielleicht sogar noch mit einem Pflichtkommentar.
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.

    Noyne schrieb:

    wie?!
    Vielleicht doch noch was anderes, das solltest Du mal probieren:
    Form -> hinzufügen Dataset
    DataSet -> Properties -> ApplicationSettings -> RemotingFormat => Binary.
    ==================
    Zieh Dir eine BindingSource auf die Form und weise der einen DataSource hinzu, Auswahl ...
    Bilder
    • XML.jpg

      26,47 kB, 370×356, 80 mal angesehen
    • Access.jpg

      29,69 kB, 518×302, 127 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Form -> hinzufügen Dataset
    DataSet -> Properties -> ApplicationSettings -> RemotingFormat => Binary.
    Bis hier hin ist alles gut ... Nur wenn ich

    RodFromGermany schrieb:

    Zieh Dir eine BindingSource auf die Form und weise der einen DataSource hinzu, Auswahl ...
    das mach' und den Anweisungen bei mir folge, dann leg's mir ein neues DataSet von der Access-DB an und das extra aufs Form gezogene "Binary"-DataSet liegt dumm in der Gegend rum ... siehe Screenshots ...

    Ich kann der BindingSource auch nichts anderes zuweisen als eine Access-DB ... Ich versteh' irgendwie nicht wirklich, wo ich richtig hin muss ...
    Bilder
    • DS-Test1.png

      27,4 kB, 1.814×604, 85 mal angesehen
    • DS-Test2.png

      22,07 kB, 1.885×534, 102 mal angesehen
    Your computer is running... You better go chase it! :P :D

    Noyne schrieb:

    liegt dumm in der Gegend rum
    War auch nur eine Alternative, keine zusätzliche Lösung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!