ChangePassword.OnChangingPassword(LoginCancelEventArgs) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
ChangingPassword Vyvolá událost před změnou hesla uživatele poskytovatelem členství.
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
Objekt CancelEventArgs obsahující data události.
Příklady
Následující příklad kódu ukazuje, jak použít ASP.NET stránku, která používá ChangePassword ovládací prvek a obsahuje obslužnou rutinu ChangingPassword pro událost s názvem ChangingPassword
.
ChangingPassword
porovná staré heslo uložené ve CurrentPassword vlastnosti s novým heslem uloženým v nástroji NewPassword. Pokud jsou obě hesla stejná, změna hesla se nezdaří.
Ovládací ChangePassword prvek nastaví DisplayUserName vlastnost na , true
aby uživatel mohl zadat své uživatelské jméno. To znamená, že uživatel se k zobrazení stránky nemusí přihlašovat.
Příklad kódu předpokládá, že web ASP.NET byl nakonfigurován pro použití ASP.NET členství a ověřování pomocí formulářů a že byl vytvořen uživatel, jehož jméno a heslo jsou vám známy. Další informace najdete v tématu Postupy: Implementace ověřování pomocí jednoduchých formulářů.
<%@ 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>
Poznámky
Metoda OnChangingPassword je volána před zavolání zprostředkovatele členství zadaného MembershipProvider ve vlastnosti za účelem změny hesla uživatele.
Použijte metodu OnChangingPassword k provedení jakéhokoliv zpracování, které je nezbytné před změnou hesla, například zkontrolujte nové heslo, abyste se ujistili, že není v seznamu běžných hesel.
Metoda OnChangingPassword může událost zrušit ChangingPassword nastavením Cancel vlastnosti objektu CancelEventArgs předaného jako parametr e na true
.
Vyvolání události spustí obslužnou rutinu události prostřednictvím delegáta. Další informace najdete v tématu Zpracování událostí serveru v ASP.NET webových formulářů.
Metoda OnChangingPassword také umožňuje odvozeným třídám zpracovat událost bez připojení delegáta. Toto je upřednostňovaná technika pro zpracování události v odvozené třídě.
Poznámky pro dědice
Při přepsání OnChangingPassword(LoginCancelEventArgs) metody v odvozené třídě nezapomeňte zavolat metodu OnChangingPassword(LoginCancelEventArgs) pro základní třídu, aby registrovaní delegáti obdrželi událost.
Platí pro
Viz také
- OnBubbleEvent(Object, EventArgs)
- ChangingPassword
- Zpracování událostí serveru ve webových stránkách ASP.NET
- Přehled ovládacích prvků přihlášení ASP.NET
- Přizpůsobení vzhledu a chování ovládacích prvků přihlášení ASP.NET
- šablony ovládacích prvků webového serveru ASP.NET
- Postupy: Zobrazení různých informací anonymním a přihlášeným uživatelům
- Karta Zabezpečení nástroje správa webu
- Zabezpečení ovládacích prvků přihlášení
- Základní postupy zabezpečení pro webové aplikace
- Zabezpečení členství