Ich habe ein Programm, das System.DirectoryServices.AccountManagement.PrincipalContext
verwendet, um zu verifizieren, dass die Information, die ein Benutzer in einem Setup-Bildschirm eingegeben hat, ein gültiger Benutzer in der Domäne ist (der Computer selbst ist nicht in der Domäne) und führt einige Operationen für die Benutzer aus Domain. Das Problem ist, dass der Benutzer nicht jedes Mal, wenn er das Programm ausführt, sein Kennwort eingeben muss, damit ich es speichern kann, aber ich fühle mich nicht wohl dabei, das Kennwort als Nur-Text in der Datei app.config zu speichern. PrincipalContext benötigt ein Klartext-Passwort, so dass ich keinen gesalzenen Hash machen kann, wie jeder empfiehlt, um das Passwort zu speichern.
Das habe ich gemacht
%Vor%War das das Richtige oder gibt es einen besseren Weg?
BEARBEITEN - Hier ist eine aktualisierte Version, die auf den Vorschlägen aller basiert.
%Vor%Für das Salz würde ich eine Transformation für den Benutzernamen vornehmen (Hash), anstatt das gleiche Salz für alle zu teilen.
Für so etwas würde ich auch nach einer Möglichkeit suchen, die bestehende Sitzung länger am Leben zu erhalten, anstatt das Passwort zu speichern, um neue Sitzungen zu erstellen.
Ich mag den JoelCoehoorn-Ansatz.
Verwenden Sie einen für den Benutzercomputer eindeutigen Wert als das Kennwort salt.
Es wird also in jeder Hinsicht anders sein; ).
UPDATE: Sehen Sie diesen Thread für Ideen: How-To-Get-Unique-Machine - Unterschrift
Tags und Links c# passwords encryption