ChangePassword.OnChangingPassword(LoginCancelEventArgs) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
ChangingPassword Zgłasza zdarzenie przed zmianą hasła użytkownika przez dostawcę członkostwa.
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)
Parametry
CancelEventArgs Obiekt zawierający dane zdarzenia.
Przykłady
Poniższy przykład kodu pokazuje, jak używać strony ASP.NET korzystającej z kontrolki i zawiera procedurę ChangePassword obsługi zdarzenia ChangingPassword o nazwie ChangingPassword
. ChangingPassword
porównuje stare hasło przechowywane we CurrentPassword właściwości z nowym hasłem przechowywanym w NewPasswordpliku . Jeśli te dwa hasła są takie same, zmiana hasła zakończy się niepowodzeniem.
Kontrolka ChangePassword ustawia DisplayUserName właściwość, aby true
umożliwić użytkownikowi wprowadzanie nazwy użytkownika. Oznacza to, że użytkownik nie musi zalogować się, aby wyświetlić stronę.
W przykładzie kodu przyjęto założenie, że witryna sieci Web ASP.NET została skonfigurowana do używania ASP.NET członkostwa i uwierzytelniania formularzy oraz że użytkownik został utworzony, którego nazwa i hasło są dla Ciebie znane. Aby uzyskać więcej informacji, zobacz Instrukcje: implementowanie uwierzytelniania prostych formularzy.
<%@ 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>
Uwagi
Metoda OnChangingPassword jest wywoływana przed wywołaniem dostawcy członkostwa określonego MembershipProvider we właściwości w celu zmiany hasła użytkownika.
OnChangingPassword Użyj metody , aby wykonać dowolne przetwarzanie, które jest niezbędne przed zmianą hasła, takie jak sprawdzanie nowego hasła, aby upewnić się, że nie znajduje się on na liście typowych haseł.
Metoda OnChangingPassword może anulować ChangingPassword zdarzenie, ustawiając Cancel właściwość CancelEventArgs obiektu przekazanego jako parametr e na true
.
Podnoszenie zdarzenia wywołuje program obsługi zdarzeń przez delegata. Aby uzyskać więcej informacji, zobacz Server Event Handling in ASP.NET Web Forms Pages (Obsługa zdarzeń serwera na stronach ASP.NET formularzy sieci Web).
Metoda OnChangingPassword umożliwia również klasom pochodnym obsługę zdarzenia bez dołączania delegata. Jest to preferowana technika obsługi zdarzenia w klasie pochodnej.
Uwagi dotyczące dziedziczenia
Podczas zastępowania OnChangingPassword(LoginCancelEventArgs) metody w klasie pochodnej należy wywołać OnChangingPassword(LoginCancelEventArgs) metodę dla klasy bazowej, aby zarejestrowani delegaci otrzymywali zdarzenie.
Dotyczy
Zobacz też
- OnBubbleEvent(Object, EventArgs)
- ChangingPassword
- Obsługa zdarzeń serwera na stronach sieci Web ASP.NET
- ASP.NET Kontrolki logowania — omówienie
- Dostosowywanie wyglądu i zachowania kontrolek logowania ASP.NET
- szablony kontrolek serwera sieci Web ASP.NET
- Instrukcje: wyświetlanie różnych informacji dla użytkowników anonimowych i zalogowanych
- Karta Zabezpieczenia narzędzia do administrowania witrynami sieci Web
- Zabezpieczanie kontrolek logowania
- Podstawowe praktyki zabezpieczeń dla aplikacji internetowych
- Zabezpieczanie członkostwa
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla