如何:使用 ASP.NET PasswordRecovery 控件启用用户密码恢复
更新:2007 年 11 月
如果应用程序使用 ASP.NET 成员资格进行身份验证,可以使用 PasswordRecovery 控件在该应用程序中启用密码恢复。此时,应用程序将会向用户发送其当前的密码或新密码,具体情况视成员资格提供程序的配置方式而定。默认情况下,ASP.NET 会使用不可逆的加密方案对密码进行哈希处理,然后将新密码发送给用户。如果成员资格提供程序经过配置,可以对密码进行加密或以明文形式(不建议使用)存储密码,将会发送该用户的当前密码。
若要恢复密码,应用程序必须可以向用户发送电子邮件。因此,必须使用 SMTP 服务器的名称对应用程序进行配置,使应用程序可以向该服务器转发电子邮件。有关更多信息,请参见 SmtpClient 类和如何:在 IIS 6.0 中安装和配置 SMTP 虚拟服务器。
启用密码恢复
在匿名用户可以访问的站点上创建或编辑 ASP.NET 网页(例如,RecoverPassword.aspx)。在经过身份验证的网站上,可以使用 location 配置元素指定可以匿名访问某页,如以下示例所示:
<configuration> <location path="RecoverPassword.aspx"> <system.web> <authorization> <allow users="?" /> </authorization> </system.web> </location> <system.web> <authentication mode="Forms" > <forms loginUrl="UserLogin.aspx" /> </authentication> <authorization> <deny users="?" /> </authorization> </system.web> </configuration>
将 PasswordRecovery 控件放置在页中,如以下示例所示:
<asp:PasswordRecovery ID="PasswordRecovery1" Runat="server"> </asp:PasswordRecovery>
或者,配置下列模板以自定义该 PasswordRecovery 控件的外观:UserNameTemplate、QuestionTemplate 和 SuccessTemplate。