2009-05-19 8 views
2

Sur une page J'ajoute récupérer oublié USERNAMEASP.NET fournisseur d'appartenances - Valider Question sécurité Hashed/Réponse

Étape 1) Entrez l'adresse e-mail (Get compte par email)

Étape 2) Vérifier la sécurité question (ils fournissent réponse et je valident)

Étape 3) Envoyez un e-mail avec le nom d'utilisateur

Étape 2 est là où je suis coincé. Comment puis-je valider la réponse avec ce qui est stocké dans la base de données?

Toutes les valeurs sont hachées.

Je vois d'autres questions postées similaires à ceci mais elles ne répondent pas à la question, du moins pas clairement.

Répondre

2

Comme vous l'avez dit, les valeurs dans le DB sont hachées, afin de valider ce que l'utilisateur a tapé correspond à ce qui est dans le DB, hashed la valeur que l'utilisateur a entré et comparer les deux valeurs hachées. Si elles sont égales, cela valide.

Vous devez fondamentalement hacher le texte de la réponse avant de le comparer à la valeur dans la base de données. De plus, sachez que parfois le texte de la réponse est salé avec une valeur avant d'être haché, les mêmes étapes doivent donc être prises lors de la validation.

1

En regardant le fournisseur, il n'expose aucune méthode pour vous permettre d'effectuer votre deuxième étape.

Vous devrez effectuer les opérations suivantes.

  1. Créez une procédure stockée qui récupérera les résultats en fonction de l'e-mail et de la réponse.
  2. Comme vous l'avez mentionné depuis que la réponse est hachée, vous devez MD5 hacher les valeurs fournies par l'utilisateur. (FormsAuthentication.HashPasswordForStoringInConfigFile fonctionnerait pour cela)
  3. Appelez votre procédure stockée avec les paramètres nécessaires pour valider que les informations des utilisateurs correspondent.