Comment mettre en Œuvre des Réinitialisations de Mot de passe?

Je travaille sur une application en ASP.NET et je me demandais comment je pourrais mettre en œuvre un Password Reset fonction de si je voulais rouler mes propres.

Précisément, j'ai les questions suivantes:

  • Ce qui est un bon moyen de générer un IDENTIFIANT Unique qui est difficile à résoudre?
  • Devrait-il y avoir une minuterie attaché à elle? Si oui, combien de temps devrait-il être?
  • Dois-je enregistrer l'adresse IP? Est-il encore de l'importance?
  • Quelles informations dois-je demander en vertu de la Réinitialisation du Mot de passe de l'écran ? Juste une adresse de Courriel? Ou peut-être l'adresse email de plus un élément d'information qu'ils "savent"? (Équipe Favorite, le chiot de nom, etc)

Y a d'autres considérations, j'ai besoin d'être au courant?

NB: D'autres questions ont l'estomper techniques de mise en œuvre entièrement. En effet accepté de répondre à des gloses sur les détails sanglants. J'espère que cette question et les réponses données ultérieurement vont aller dans les détails sanglants, et, je l'espère, par le phrasé cette question de plus en plus étroitement que les réponses sont moins "fluff" et plus "gore'.

Modifier: les Réponses qui vont également dans la façon dont un tel tableau serait modélisé et gérées dans SQL Server ou tout ASP.NET MVC liens vers une réponse serait appréciée.

  • ASP.NET MVC utilise la valeur par défaut ASP.NET fournisseur d'authentification, de sorte que toute les exemples de code que vous trouverez autour de qui sshould jusqu'à être pertinents pour vos besoins.