Пара баллов по текущему состоянию (по состоянию на октябрь 2011 г.):
1-й: есть большая вероятность, что вы на самом деле не хотите «восстановления» пароля, поскольку это считается угрозой безопасности, и вы должны отключить одностороннее шифрование пароля, чтобы иметь возможность его реализовать. Вместо этого большинство людей применяют пароль «сброс».
Если вы действительно хотите разрешить «восстановление», то:
1) Когда вы создаете новый интернет-проект в VS2010, он создает страницы LogOn, Register и ChangePassword для вас. Как говорит Гектор, для вас не создано никакого восстановления пароля.
2) Однако поставщик членства в Asp.Net поддерживает его, поэтому вы можете добавить его, создав модель, контроллер и просмотр самостоятельно, установив enablePasswordRetrieval = "true" и passwordFormat = "Encryted" и вызвав Membership.GetUser ( ).
Если вместо пароля «Восстановление» вам действительно нужен пароль «Сброс», то есть несколько способов его реализовать:
i) Самообслуживание - когда пользователь может щелкнуть ссылку и отправить ему электронное письмо со ссылкой для сброса пароля.
Примеры:
Этот я пробовал. Мне нравится, потому что он обрабатывает как подтверждение учетной записи, так и сброс пароля:
- http://nuget.org/List/Packages/SimpleMembership.Mvc3
Я НЕ пробовал ничего из этого:
- http://hectorcorrea.com/Blog/Password-Recovery-in-an-ASP.NET-MVC-Project
- http://stevenalexander.posterous.com/expiring-password-reset-token-in-mvc-with-wf
- http://forrst.com/posts/ASP_NET_MVC_3_C_Password_Reset-gFA
ii) Управляемый администратор - вы связываетесь с администратором, который затем сбрасывает ваш пароль для вас. Примером этого может служить MvcMembership Starter Kit от TroyGoode, на который Gthompson83 ссылается выше. Есть пункт меню «Администрирование пользователей», который доступен администраторам и позволяет сбросить пароли или создать случайный пароль, который будет отправлен пользователю по электронной почте. Это также позволяет вам управлять ролями.