如何:使用 ASP.NET PasswordRecovery 控件启用用户密码恢复

更新:2007 年 11 月

如果应用程序使用 ASP.NET 成员资格进行身份验证,可以使用 PasswordRecovery 控件在该应用程序中启用密码恢复。此时,应用程序将会向用户发送其当前的密码或新密码,具体情况视成员资格提供程序的配置方式而定。默认情况下,ASP.NET 会使用不可逆的加密方案对密码进行哈希处理,然后将新密码发送给用户。如果成员资格提供程序经过配置,可以对密码进行加密或以明文形式(不建议使用)存储密码,将会发送该用户的当前密码。

若要恢复密码,应用程序必须可以向用户发送电子邮件。因此,必须使用 SMTP 服务器的名称对应用程序进行配置,使应用程序可以向该服务器转发电子邮件。有关更多信息,请参见 SmtpClient 类和如何:在 IIS 6.0 中安装和配置 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 控件的外观:UserNameTemplateQuestionTemplateSuccessTemplate

请参见

参考

ASP.NET 登录控件概述