2011-01-06 12 views
1

Ich schreibe ein Backup-Programm für den persönlichen (zumindest im Moment) verwenden.Speichern Windows Benutzername + Passwort in VB.Net

Für einige Verzeichnisse (Netzwerkverzeichnisse/geschützte Verzeichnisse) sind Anmeldeinformationen erforderlich, um auf sie zuzugreifen.

Ich kann verschiedene Jobs im Programm zu bestimmten Zeiten ausführen.

Diese Jobs werden in einer XML-Datei gespeichert.

Ich möchte auch die Benutzernamen und Passwörter speichern, die die Jobs benötigen.

Was und wo wäre der beste Weg, diese zu speichern?

Ändern der Berechtigungen für die Verzeichnisse ist keine Option.

Vielen Dank im Voraus!

Antwort

2

Sie sollten niemals das Anmeldekennwort für einen Benutzer in Windows speichern, um auf ein lokales Verzeichnis zugreifen zu können. Stattdessen sollte Ihr Sicherungsprogramm als Benutzer ausgeführt werden, für den SeBackupPrivilege aktiviert ist (d. H. Die Sicherung von einem Dienst ausführen, der als lokales System ausgeführt wird). Dies bedeutet, dass Sie die Berechtigungen nicht ändern müssen.

Sie müssen möglicherweise auch sicherstellen, dass Sie zuerst eine Volume Shadow Copy ausführen, von der Sie kopieren - kopieren Sie nicht direkt von der Festplatte, da dies dazu führen kann, dass Ihre Sicherung inkonsistent ist.

Außerdem müssen Sie besonders auf verschlüsselte Dateien achten und dafür ReadEncryptedFileRaw verwenden.

+0

Kann der lokale Systemaccount auch aus Netzwerkverzeichnissen kopieren? Wenn nicht. Wie man mit passwortgeschützten Netzwerkverzeichnissen umgeht? – PeeHaa

+1

Nein, das lokale System kann wahrscheinlich nicht aus entfernten Verzeichnissen kopieren. Das Remote-Szenario ist jedoch eine völlig andere Geschichte - ist dies ein separater Computer, der andere primäre Benutzer hat, ist es ein Server, ist es ein Netzlaufwerk, ist es zu Hause oder in einem Büro (mit einer Domäne)? Das sind alles verschiedene Fälle. – villintehaspam

+0

Es gibt 1 Linux-Server. Und 1 Dateiserver in der Domäne. Und 2 Benutzer Maschinen auch in der Domäne. Ich benutze nun jeden Abend auf dem Linux-Rechner einen Cronjob auf dem Linux-Rechner und jeden Tag eine geplante Aufgabe auf dem Fileserver. Kopieren der Datei in einen Sicherungsordner auf dem bestimmten Computer, auf dem die Backup-App ausgeführt wird. Ich mache das gleiche für die Benutzer Maschinen nur bei der Anmeldung. Danke für deine Hilfe! – PeeHaa

1

Sie können das Sicherungsprogramm als geplante Aufgabe ausführen, die als bestimmter Benutzer ausgeführt wird.

Zum Speichern von Passwörtern können Sie sie mit IsolatedStorage speichern und eine Zwei-Wege-Verschlüsselung verwenden, um es für jemanden schwieriger zu machen, die Datei zu entschlüsseln, wenn sie es findet.

Überprüfen Sie diese SO question für die Implementierung der Zwei-Wege-Verschlüsselung.

+0

Das Ausführen des Programms als der bestimmte Benutzer ist keine Option. Weil unterschiedliche Verzeichnisse unterschiedliche Anmeldeinformationen erfordern. Ich denke, dass Zweiwegverschlüsselung immer mit einem Schlüssel verwendet wird? Was, wenn ich die App in Zukunft veröffentlichen möchte. In diesem Fall möchte ich nicht, dass der Schlüssel derselbe ist (denke Reverse Engineering). Wie man das anpackt? Fragen Fragen. : P Bitte sagen Sie mir, wenn ich weit weg bin. :) Vielen Dank! – PeeHaa

+1

Sie könnten den Schlüssel in Ihrem Code basierend auf mehreren Faktoren wie Computername, Domainname, Benutzername der Person, die die Software installiert, usw. generieren. Siehe auch diese SO-Frage http://stackoverflow.com/questions/99880/generating-a- unique-machine-id –

Verwandte Themen