Практическое руководство. Включение восстановления пароля пользователя с помощью элемента управления ASP.NET PasswordRecovery
Обновлен: Ноябрь 2007
Если приложение использует членство ASP.NET для проверки подлинности, можно включить восстановление пароля в приложении с помощью элемента управления PasswordRecovery. Приложение будет отправлять пользователям их текущий пароль или новый пароль, в зависимости от конфигурации поставщика членства. По умолчанию ASP.NET хэширует пароли с использованием несимметричных схем шифрования, что позволяет выполнять отправку нового пароля пользователю. Если поставщик членства настроен на шифрование паролей или хранение их в незашифрованном виде (что не рекомендуется), то отправляется текущий пароль пользователя.
Для восстановления пароля приложение должно иметь возможность отправки сообщения пользователю по электронной почте. Поэтому в приложении должно быть задано имя SMTP-сервера, которому он может пересылать сообщения электронной почты. Дополнительные сведения см. в классе SmtpClient и в разделе Практическое руководство. Установка и настройка виртуальных серверов SMTP в IIS 6.0.
Включение восстановления пароля
Создайте и отредактируйте веб-страницу 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.