如果應用程式使用 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。