2009-10-04 7 views
2

J'ai une table Utilisateurs et la colonne HashedPassword est du type binaire (16). Il est utilisé pour stocker un hachage MD5. Pour générer le hachage, j'ai créé deux procédures stockées: CreateUser, EditUser et LoginUser. Ils ont un paramètre qui accepte un mot de passe en clair, le convertit en hash MD5 et stocke/recherche le hash dans la table.Mots de passe hachés et structure d'entité

Le problème est de savoir comment l'intégrer dans le framework d'entité? J'ai essayé de créer un champ 'mot de passe' supplémentaire dans l'entité Utilisateur et ensuite je connecterais ce champ avec les procédures stockées mais j'obtiens une erreur disant que ce nouveau champ Mot de passe n'est pas connecté à une colonne dans la table Utilisateurs. Je viens de commencer à travailler avec Entity Framework, donc il me manque probablement quelque chose d'évident. Peut-être que je devrais garder le code de génération de hachage dans .net au lieu de la base de données.

Répondre

2

Je pense que la manière la plus simple est celle que vous avez suggérée: conserver le code de génération de hash dans .net.

Je ne sais pas s'il est possible de configurer EDM pour qu'il fonctionne, mais le découplage entre la logique de sécurité, la couche d'accès aux données et la couche de stockage me semble logique.

1

Avez-vous jeté un coup d'œil au cadre Membership? Il gère tous les désagréments des utilisateurs, mots de passe, connexions, rôles et bien plus encore.

En outre, comme j'ai été administré en prior posts, MD5 n'est pas sécurisé. AES ou BCrypt sont des moyens plus sûrs de hachage aujourd'hui.

Questions connexes