ChangePassword.OnChangingPassword(LoginCancelEventArgs) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывает событие ChangingPassword, прежде чем пароль пользователя изменяется поставщиком членства.
protected:
virtual void OnChangingPassword(System::Web::UI::WebControls::LoginCancelEventArgs ^ e);
protected virtual void OnChangingPassword (System.Web.UI.WebControls.LoginCancelEventArgs e);
abstract member OnChangingPassword : System.Web.UI.WebControls.LoginCancelEventArgs -> unit
override this.OnChangingPassword : System.Web.UI.WebControls.LoginCancelEventArgs -> unit
Protected Overridable Sub OnChangingPassword (e As LoginCancelEventArgs)
Параметры
Объект CancelEventArgs, содержащий данные о событии.
Примеры
В следующем примере кода показано, как использовать страницу ASP.NET, которая использует ChangePassword элемент управления и содержит обработчик для ChangingPassword события с именем ChangingPassword
.
ChangingPassword
сравнивает старый пароль, хранящийся в свойстве CurrentPassword , с новым паролем, хранящимся в NewPassword. Если два пароля совпадают, изменение пароля завершается ошибкой.
Элемент ChangePassword управления задает свойству DisplayUserName значение , true
чтобы пользователь мог ввести свое имя пользователя. Это означает, что пользователю не нужно входить в систему для просмотра страницы.
В примере кода предполагается, что веб-сайт ASP.NET настроен для использования ASP.NET членства и проверки подлинности с помощью форм, а также что создан пользователь, имя и пароль которого вам известны. Дополнительные сведения см. в разделе Практическое руководство. Реализация простой проверки подлинности с помощью форм.
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
//Manually register the event-handling methods.
ChangePassword1.ChangingPassword += new LoginCancelEventHandler(this._ChangingPassword);
}
void _ChangingPassword(Object sender, LoginCancelEventArgs e)
{
if (ChangePassword1.CurrentPassword.ToString() == ChangePassword1.NewPassword.ToString())
{
Message1.Visible = true;
Message1.Text = "Old password and new password must be different. Please try again.";
e.Cancel = true;
}
else
{
//This line prevents the error showing up after a first failed attempt.
Message1.Visible = false;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ChangePassword including a ChangingPassword event handler</title>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align:center">
<h1>ChangePassword</h1>
<asp:LoginView ID="LoginView1" Runat="server"
Visible="true">
<LoggedInTemplate>
<asp:LoginName ID="LoginName1" Runat="server" FormatString="You are logged in as {0}." />
<br />
</LoggedInTemplate>
<AnonymousTemplate>
You are not logged in
</AnonymousTemplate>
</asp:LoginView><br />
<asp:ChangePassword ID="ChangePassword1" Runat="server"
BorderStyle="Solid"
BorderWidth="1"
CancelDestinationPageUrl="~/Default.aspx"
DisplayUserName="true"
OnChangingPassword="_ChangingPassword"
ContinueDestinationPageUrl="~/Default.aspx" >
</asp:ChangePassword><br />
<asp:Label ID="Message1" Runat="server" ForeColor="Red" /><br />
<asp:HyperLink ID="HyperLink1" Runat="server"
NavigateUrl="~/Default.aspx">
Home
</asp:HyperLink>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub PageLoad(ByVal Sender As Object, ByVal e As EventArgs)
'Manually register the event-handling methods.
AddHandler ChangePassword1.ChangingPassword, AddressOf Me._ChangingPassword
End Sub
Public Sub _ChangingPassword(ByVal Sender As Object, ByVal e As LoginCancelEventArgs)
If (ChangePassword1.CurrentPassword.ToString() = ChangePassword1.NewPassword.ToString) Then
Message1.Visible = True
Message1.Text = "Old password and new password must be different. Please try again."
e.Cancel = True
Else
'This line prevents the error showing up after a first failed attempt.
Message1.Visible = False
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ChangePassword including a ChangingPassword event handler</title>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align:center">
<h1>ChangePassword</h1>
<asp:LoginView ID="LoginView1" Runat="server"
Visible="true">
<LoggedInTemplate>
<asp:LoginName ID="LoginName1" Runat="server" FormatString="You are logged in as {0}." />
<br />
</LoggedInTemplate>
<AnonymousTemplate>
You are not logged in
</AnonymousTemplate>
</asp:LoginView><br />
<asp:ChangePassword ID="ChangePassword1" Runat="server"
BorderStyle="Solid"
BorderWidth="1"
CancelDestinationPageUrl="~/Default.aspx"
DisplayUserName="true"
OnChangingPassword="_ChangingPassword"
ContinueDestinationPageUrl="~/Default.aspx" >
</asp:ChangePassword><br />
<asp:Label ID="Message1" Runat="server" ForeColor="Red" /><br />
<asp:HyperLink ID="HyperLink1" Runat="server"
NavigateUrl="~/Default.aspx">
Home
</asp:HyperLink>
</div>
</form>
</body>
</html>
Комментарии
Метод OnChangingPassword вызывается перед вызовом поставщика членства, указанного MembershipProvider в свойстве , для изменения пароля пользователя.
Используйте метод для OnChangingPassword выполнения любой обработки, необходимой перед изменением пароля, например для проверки нового пароля, чтобы убедиться, что он отсутствует в списке распространенных паролей.
Метод OnChangingPassword может отменить событие, ChangingPassword присвоив свойству Cancel объекта , CancelEventArgs переданного в качестве параметра e значение true
.
При возникновении события через делегат вызывается обработчик события. Дополнительные сведения см. в разделе Обработка событий сервера на страницах веб-форм ASP.NET.
Метод OnChangingPassword также позволяет производным классам обрабатывать событие, не присоединяя делегат. Это предпочтительная методика обработки событий в производном классе.
Примечания для тех, кто наследует этот метод
При переопределении OnChangingPassword(LoginCancelEventArgs) метода в производном классе обязательно вызовите OnChangingPassword(LoginCancelEventArgs) метод для базового класса, чтобы зарегистрированные делегаты получили событие.
Применяется к
См. также раздел
- OnBubbleEvent(Object, EventArgs)
- ChangingPassword
- Обработка событий сервера на веб-страницах ASP.NET
- Общие сведения об элементах управления ASP.NET входа
- Настройка внешнего вида и поведения элементов управления входа ASP.NET
- Шаблоны ASP.NET веб-серверных элементов управления
- Практическое руководство. Отображение различных сведений для анонимных и вошедшего в систему пользователей
- Вкладка "Безопасность средства администрирования веб-сайта"
- Защита элементов управления входами
- Базовые рекомендации по безопасности веб-приложений
- Защита членства