2008-11-05 5 views
6

Ich habe eine App, die authentifizierte E-Mails senden mit System.Net.Mail und System.Net.NetworkCredential meine Frage ist, wie ich das Passwort speichern soll, die benötigt wird ein NetworkCrednetial-Objekt erstellen?Was ist der beste Mechanismus zum Speichern von Authentifizierungseinstellungen in einer WinForms App?

Die Anwendung hat keine Anmeldung, aber ich könnte eine Option einrichten, mit der der Benutzer seine E-Mail-Anmeldeinformationen eingeben kann (in fast allen Fällen ist dies ihre Windows-Anmeldung). Ich kann Active Directory nicht verwenden, da nicht jeder Kunde es verwendet.

Ich könnte das Passwort vom Benutzer erhalten und es dann an die Benutzerregistrierung, eine Datei oder eine Datenbank beibehalten. Offensichtlich müsste ich es verschlüsseln. Ich bin mit Verschlüsselung nicht sehr vertraut, also würden einige Zeiger geschätzt, wenn Leute denken, dass das der beste Mechanismus ist.

Meine Präferenz wäre es, nichts zu speichern, also kann ich sowieso herumkommen und muss die Anmeldedaten selbst speichern, vielleicht kann ich sie vom aktuellen Login oder woanders bekommen?

Antwort

3

Um einen Benutzernamen und ein Passwort (in Windows) zu speichern, verwenden Sie DPAPI. Die .Net-Schnittstelle dazu ist die ProtectedData und ProtectedMemory-Klassen.

Aber zuerst könnten Sie versuchen, ob die UseDefaultCredentials oder DefaultNetworkCredentials für Ihre Umgebung funktioniert.

+0

Dies ist nicht meine ideale Lösung, aber scheint die beste Option zu sein. DefaultCredentials funktioniert nicht für mich, aber ich werde das Passwort anfordern und es mit der ProtectedData-Klasse speichern. Vielen Dank –

0

Sie können auch die Benutzeroberfläche von Win32 Credentials verwenden - es gibt eine Reihe von Beispielen für die Verwendung von .NET, einschließlich this one on MSDN.

Verwandte Themen