如果应用程序使用 ASP.NET 成员资格进行身份验证,可以使用 PasswordRecovery 控件在该应用程序中启用密码恢复。此时,应用程序将会向用户发送其当前的密码或新密码,具体情况视成员资格提供程序的配置方式而定。默认情况下,ASP.NET 会使用不可逆的加密方案对密码进行哈希处理,然后将新密码发送给用户。如果成员资格提供程序经过配置,可以对密码进行加密或以明文形式(不建议使用)存储密码,将会发送该用户的当前密码。
若要恢复密码,应用程序必须可以向用户发送电子邮件。因此,必须使用 SMTP 服务器的名称对应用程序进行配置,使应用程序可以向该服务器转发电子邮件。
1、在匿名用户可以访问的站点上创建或编辑 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>
2、将 PasswordRecovery 控件放置在页中,如以下示例所示:
<asp:PasswordRecovery ID="PasswordRecovery1" Runat="server">
</asp:PasswordRecovery>
3、或者,配置下列模板以自定义该 PasswordRecovery 控件的外观:UserNameTemplate、QuestionTemplate 和 SuccessTemplate。