ChangePassword.OnChangingPassword(LoginCancelEventArgs) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Déclenche l'événement ChangingPassword avant que le mot de passe de l'utilisateur ne soit modifié par le fournisseur d'appartenances.
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)
Paramètres
Objet CancelEventArgs contenant les données d'événement.
Exemples
L’exemple de code suivant montre comment utiliser une page ASP.NET qui utilise un ChangePassword contrôle et inclut un gestionnaire pour l’événement ChangingPassword nommé ChangingPassword
.
ChangingPassword
compare l’ancien mot de passe stocké dans la CurrentPassword propriété au nouveau mot de passe stocké dans NewPassword. Si les deux mots de passe sont identiques, la modification du mot de passe échoue.
Le ChangePassword contrôle définit la DisplayUserName propriété sur true
pour permettre à l’utilisateur d’entrer son nom d’utilisateur. Cela signifie que l’utilisateur n’a pas besoin de se connecter pour afficher la page.
L’exemple de code suppose que le site web ASP.NET a été configuré pour utiliser ASP.NET’appartenance et l’authentification par formulaire, et qu’un utilisateur a été créé dont vous connaissez le nom et le mot de passe. Pour plus d’informations, consultez Guide pratique pour implémenter l’authentification par formulaire simple.
<%@ 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>
Remarques
La OnChangingPassword méthode est appelée avant que le fournisseur d’appartenance spécifié dans la MembershipProvider propriété ne soit appelé pour modifier le mot de passe de l’utilisateur.
Utilisez la OnChangingPassword méthode pour effectuer tout traitement nécessaire avant de modifier le mot de passe, par exemple en vérifiant le nouveau mot de passe pour vous assurer qu’il ne figure pas dans une liste de mots de passe courants.
La OnChangingPassword méthode peut annuler l’événement ChangingPassword en définissant la Cancel propriété de l’objet CancelEventArgs passé comme paramètre e sur true
.
Le déclenchement d'un événement appelle le gestionnaire des événements par l'intermédiaire d'un délégué. Pour plus d’informations, consultez Gestion des événements de serveur dans ASP.NET pages Web Forms.
La méthode OnChangingPassword permet également aux classes dérivées de gérer l'événement sans y attacher de délégué. Il s'agit de la méthode recommandée pour gérer l'événement dans une classe dérivée.
Notes pour les héritiers
Lorsque vous remplacez la OnChangingPassword(LoginCancelEventArgs) méthode dans une classe dérivée, veillez à appeler la méthode pour la OnChangingPassword(LoginCancelEventArgs) classe de base afin que les délégués inscrits reçoivent l’événement.
S’applique à
Voir aussi
- OnBubbleEvent(Object, EventArgs)
- ChangingPassword
- Gestion des événements serveur dans ASP.NET pages web
- vue d’ensemble des contrôles de connexion ASP.NET
- Personnalisation de l’apparence et du comportement des contrôles de connexion ASP.NET
- modèles de contrôles de serveur web ASP.NET
- Guide pratique pour afficher différentes informations aux utilisateurs anonymes et connectés
- Onglet Sécurité de l’outil d’administration de site web
- Sécurisation des contrôles de connexion
- Pratiques de base relatives à la sécurité des applications Web
- Sécurisation de l’appartenance