ChangePassword.OnChangingPassword(LoginCancelEventArgs) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Löst das ChangingPassword-Ereignis aus, bevor das Kennwort des Benutzers vom Mitgliedschaftsanbieter geändert wird.
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)
Parameter
Ein CancelEventArgs-Objekt, das Ereignisdaten enthält.
Beispiele
Das folgende Codebeispiel zeigt, wie eine ASP.NET Seite verwendet wird, die ein ChangePassword -Steuerelement verwendet, und enthält einen Handler für das ChangingPassword Ereignis namens ChangingPassword
.
ChangingPassword
Vergleicht das alte Kennwort, das in der CurrentPassword -Eigenschaft gespeichert ist, mit dem neuen Kennwort, das in NewPasswordgespeichert ist. Wenn die beiden Kennwörter identisch sind, tritt beim Ändern des Kennworts ein Fehler auf.
Das ChangePassword -Steuerelement legt die DisplayUserName -Eigenschaft auf fest true
, damit der Benutzer seinen Benutzernamen eingeben kann. Dies bedeutet, dass sich der Benutzer nicht anmelden muss, um die Seite anzuzeigen.
Im Codebeispiel wird davon ausgegangen, dass die ASP.NET-Website für die Verwendung ASP.NET Mitgliedschaft und Formularauthentifizierung konfiguriert wurde und dass ein Benutzer erstellt wurde, dessen Name und Kennwort Ihnen bekannt sind. Weitere Informationen finden Sie unter Vorgehensweise: Implementieren der Authentifizierung für einfache Formulare.
<%@ 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>
Hinweise
Die OnChangingPassword -Methode wird aufgerufen, bevor der in der MembershipProvider -Eigenschaft angegebene Mitgliedschaftsanbieter aufgerufen wird, um das Kennwort des Benutzers zu ändern.
Verwenden Sie die OnChangingPassword -Methode, um alle Verarbeitungen auszuführen, die vor dem Ändern des Kennworts erforderlich sind, z. B. überprüfen Sie das neue Kennwort, um sicherzustellen, dass es nicht in einer Liste mit allgemeinen Kennwörtern enthalten ist.
Die OnChangingPassword -Methode kann das ChangingPassword Ereignis abbrechen, indem die Cancel -Eigenschaft des -Objekts, das CancelEventArgs als e-Parameter übergeben wird, auf true
festgelegt wird.
Durch das Auslösen eines Ereignisses wird der Ereignishandler über einen Delegaten aufgerufen. Weitere Informationen finden Sie unter Serverereignisbehandlung in ASP.NET Web Forms-Seiten.
Mit der OnChangingPassword-Methode können auch abgeleitete Klassen das Ereignis ohne Anfügen eines Delegaten behandeln. Dies ist das bevorzugte Verfahren für die Behandlung des Ereignisses in einer abgeleiteten Klasse.
Hinweise für Vererber
Achten Sie beim Überschreiben der OnChangingPassword(LoginCancelEventArgs) -Methode in einer abgeleiteten Klasse darauf, die OnChangingPassword(LoginCancelEventArgs) -Methode für die Basisklasse aufzurufen, damit registrierte Delegaten das Ereignis empfangen.
Gilt für:
Weitere Informationen
- OnBubbleEvent(Object, EventArgs)
- ChangingPassword
- Serverereignisbehandlung in ASP.NET Webseiten
- Übersicht über ASP.NET-Anmeldesteuerelemente
- Anpassen von Darstellung und Verhalten der ASP.NET-Anmeldesteuerelemente
- Vorlagen für ASP.NET-Webserversteuerelemente
- Vorgehensweise: Anzeigen verschiedener Informationen für anonyme und angemeldete Benutzer
- Registerkarte "Sicherheit" des Websiteverwaltungstools
- Schützen von Anmeldesteuerelementen
- Grundlegende Sicherheitsmaßnahmen für Webanwendungen
- Sichern der Mitgliedschaft