【发布时间】:2011-02-16 11:28:39
【问题描述】:
我可以在 MVC 应用程序中使用 asp.net 3.5 Password Recovery 控件吗?
我们需要为我们的 MVC 应用程序提供密码检索功能,我想使用仅适用于 Web 表单应用程序的密码恢复控件。
【问题讨论】:
标签: asp.net asp.net-mvc forgot-password
我可以在 MVC 应用程序中使用 asp.net 3.5 Password Recovery 控件吗?
我们需要为我们的 MVC 应用程序提供密码检索功能,我想使用仅适用于 Web 表单应用程序的密码恢复控件。
【问题讨论】:
标签: asp.net asp.net-mvc forgot-password
Webforms 中的许多服务器控件无法按设计在 MVC 上运行。查看MvcMembership starter kit。
【讨论】:
与登录和注销不同,密码恢复功能并未在全新的 ASP.NET MVC 项目中实现,但是,将此功能添加到 ASP.NET MVC 项目实际上非常容易,因为 Membership 类已经具有核心内置功能。
我已经在我的博客中发布了关于我是如何做到的解释:
http://www.hectorcorrea.com/blog/Password-Recovery-in-an-ASP.NET-MVC-Project.aspx
【讨论】:
关于当前最先进技术的几点说明(截至 2011 年 10 月):
第一个:很有可能您实际上并不想要“恢复”密码,因为它被认为是一种安全风险,您必须关闭单向密码加密才能实现它。相反,大多数人实施密码“重置”。
如果你真的想允许“恢复”,那么:
1) 当您在 VS2010 中创建一个新的 Internet 项目时,它会为您创建:LogOn、Register 和 ChangePassword 页面。正如 Hector 所说,没有为您创建密码恢复。
2) 但是,Asp.Net Membership 提供程序确实支持它,因此您可以通过自己创建模型、控制器和视图来添加它,设置 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) 管理员管理 - 您联系管理员,然后管理员会为您重置密码。 Gthompson83 上面提到的 TroyGoode 的 MvcMembership Starter Kit 就是一个例子。有一个名为“用户管理”的菜单项可供管理员访问,并允许重置密码或生成随机密码并通过电子邮件发送给用户。它还可以让您管理角色。
【讨论】: