2009-06-29 7 views
1

J'ai une application winforms C# avec un formulaire pour les préférences de l'utilisateur. Un compte d'administrateur devrait être en mesure d'afficher une liste déroulante des noms d'utilisateur stockés dans une table de sécurité qui permettra à l'administrateur de modifier les préférences de cet utilisateur. Tout va bien sur ce front, sauf que les noms d'utilisateur et les mots de passe sont stockés cryptés dans la base de données. J'ai des fonctions pour le cryptage/décryptage, mais comme il se trouve maintenant la liste déroulante est databound au champ de nom d'utilisateur de la table des utilisateurs. Est-il possible de filtrer les données via ma fonction de décryptage avant d'être lié à la liste déroulante?Liaison de données à une chaîne chiffrée?

Ce n'est pas une grosse affaire en ce moment, et pourrait être facilement remplacé par une méthode différente de la liaison directe, mais à l'avenir, je vais devoir faire beaucoup plus de champs de la même manière, donc je voudrais trouver un moyen de stocker des données et d'utiliser des données cryptées.

Merci pour votre aide à l'avance!

+0

Idéalement, les mots de passe ne devraient pas être stockés dans la base de données, cryptés ou autrement. Un hachage unidirectionnel sécurisé, salé et crypté est bien plus idéal. – Alan

+0

Bien conscient. :) Malheureusement, je ne fais que consommer de la sécurité à ce stade, pas responsable de la façon dont nous le faisons réellement. Cependant, un jour, le plan est de réécrire et je vais certainement le faire à nouveau. – Totty

Répondre

2

Vous pouvez écrire un ITypedList qui enveloppe votre source de données et retourne PropertyDescriptors personnalisée qui déchiffrent les données GetValue et chiffrez dans SetValue.

+0

Avait une solution similaire dans un projet utilisant récemment Linq to Sql avec une propriété personnalisée dans la classe partielle d'entité. Bien que cela puisse être un peu lent lorsque je travaillais avec de grands ensembles de données, j'étais satisfait de la performance globale. –

Questions connexes