Strukturen erstellen / Mehrfache Zugangsdaten speichern

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von vrtz.

    Strukturen erstellen / Mehrfache Zugangsdaten speichern

    Hallo,

    Ich habe ein Programm mit FTP-Zugriff geschrieben. Bislang kann man dort immer nur ein einzelne Gruppe an Zugangsdaten und Optionen eintragen / konfigurieren. Nun möchte ich, dass ein User mehrere Gruppen an Zugangsdaten eintragen kann, bei denen er dann zur Laufzeit einen Server auswählen kann oder noch weitere konfiguriert.
    Ich dachte mir hierfür, dass ich eine Combobox hinzufüge, die dann als eindeutiger Identifikator der Credentials ausgewählt werden soll. D.h. beim eintragen der Daten wählt man einen Namen, der einem hilft das richtige Paar an Zugangsdaten auszuwählen.
    Dafür dachte ich mir dann, dass ich sowas eine Struktur definiere, die genau diese Attribute hat, die ausgefüllt werden in der Form. Leider weiß ich nicht, wie genau ich das realisiere und das Ganze dann auch in My.Settings speichere und lade.
    Das was EDR gesagt hat und zum Anzeigen musst du dann mit dem Index der Anzeige (ComboBox) arbeiten.
    Hier ein Beispiel dazu:

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Public Structure Credentials
    4. Public Property Name As String
    5. Public Property Server As String
    6. Public Property Passwort As String
    7. End Structure
    8. Public list As New List(Of Credentials)
    9. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    10. list.Add(New Credentials() With {.Name = "test", .Passwort = "xxx", .Server = "test.de"})
    11. list.Add(New Credentials() With {.Name = "test2", .Passwort = "xxx2", .Server = "test2.de"})
    12. For Each item As Credentials In list
    13. ComboBox1.Items.Add(item.Name)
    14. Next
    15. End Sub
    16. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    17. TextBox1.Text = (list(ComboBox1.SelectedIndex()).Name)
    18. TextBox2.Text = (list(ComboBox1.SelectedIndex()).Passwort)
    19. TextBox3.Text = (list(ComboBox1.SelectedIndex()).Server)
    20. End Sub
    21. End Class


    Aber FTP Zugangsdaten in den Settings zu speichern ist sehr riskannt.
    FTP ist insgesamt sehr riskant, denn jedermann kann eine Anmeldung per WireShark mitsniffen, und erhält so die AnmeldeDaten - ob die nun in den Settings stunden, oder frisch eingegeben wurden.

    Programme, die FTP verwenden, können also nur vom Besitzer des jeweiligen Ftp-Accounts verwendet werden, und nur in sicheren Netzwerk-Umgebungen (was immer das bedeuten mag).
    Erhält eine falsche Person die Daten, so kanner den Account nutzen, wie er will, ocer auch einfach an annere weiterverkaufen, die derlei offene Server in ihr Bot-Netzwerk zu integrieren trachten.
    Wenn wir von schlichtem FTP reden, stimme ich dir zu. Ich verwende aber ausschließlich FTPS. Dort dürfte das nicht so leicht sein. Außerdem geht das ein wenig am Thema vorbei, da mich wie gesagt die Speicherung der Zugangsdaten interessiert. Egal wofür es nachher ist. Hauptsache ich gewährleiste eine ausreichende Sicherheit.
    so selbstgebastelte Datentypen kannste perse nicht inne Settings speichern - die nehmen normalerweise nur die einfachsten Datentypen wie String, Date, Integer. Du könntest deine Liste in einen String serialisieren, und den speichern. Zu Serialisierung gibts viele Möglichkeiten, ich hab mich zuletzt mit Json beschäftigt, aber ebensogut wäre XmlSerialisierung möglich oder glaub auch Serialisierung mittm BinaryFormatter.

    Du kannst auch probieren, ob @VB1963:'s Trick für dich anwendbar ist: damit kann man auch abweichende Typen in den Settings unterbringen: [VB 2010] benutzerdefinierte Liste in den Settings speichern
    Also so wie ich das bislang verstehe, Erstelle ich mir also ein Dataset mit einem Table drin, erstelle da meine Spalten wie ich will und benutze dann meine Form um die jeweiligen Spalten auszufüllen. Anhand einer Combobox switche ich dann zwischen den Zugangsdaten-Paaren. Persistent mache ich das ganze dann, indem ich das Datatable als XML speichere und im Programm wiederum lade, wenn ich es brauche. Also muss ich mich in Datatables, Datasets und XML reinfuchsen. Gibt es sonst keine komfortablerere Lösung um mehrere Zugangsdaten zu sichern? Ist an meinem bisherigen Plan sonst etwas auszusetzen?

    8-)