SqlMembershipProvider.ChangePassword(String, String, String) Méthode

Définition

Modifie le mot de passe d'un utilisateur.

public:
 override bool ChangePassword(System::String ^ username, System::String ^ oldPassword, System::String ^ newPassword);
public override bool ChangePassword (string username, string oldPassword, string newPassword);
override this.ChangePassword : string * string * string -> bool
Public Overrides Function ChangePassword (username As String, oldPassword As String, newPassword As String) As Boolean

Paramètres

username
String

Utilisateur pour lequel mettre à jour le mot de passe.

oldPassword
String

Mot de passe actuel de l’utilisateur spécifié.

newPassword
String

Nouveau mot de passe de l’utilisateur spécifié.

Retours

true si le mot de passe a été correctement mis à jour. false si l'ancien mot de passe fourni n'est pas valide, que l'utilisateur est bloqué ou que l'utilisateur n'existe pas dans la base de données.

Exceptions

username est une chaîne vide (""), contient une virgule ou dépasse 256 caractères.

- ou -

oldPassword est une chaîne vide ou dépasse 128 caractères.

- ou -

newPassword est une chaîne vide ou dépasse 128 caractères.

- ou -

La version codée de newPassword dépasse 128 caractères.

- ou -

L'opération de modification de mot de passe a été annulée par un abonné à l'événement ValidatingPassword, et la propriété FailureInformation était null.

- ou -

La longueur de newPassword est inférieure à la longueur minimale spécifiée dans la propriété MinRequiredPasswordLength.

- ou -

Le nombre de caractères non alphabétiques contenu dans newPassword est inférieur au nombre requis de caractères non alphabétiques spécifié dans la propriété MinRequiredNonAlphanumericCharacters.

- ou -

newPassword ne passe pas l'expression régulière définie dans la propriété PasswordStrengthRegularExpression.

username a la valeur null.

-ou-

oldPassword a la valeur null.

-ou-

newPassword a la valeur null.

username est introuvable dans la base de données.

Une erreur s'est produite lors de la définition de la nouvelle valeur de mot de passe dans la base de données.

Une exception non gérée s'est produite.

Exemples

L’exemple de code suivant modifie le mot de passe de l’utilisateur spécifié.

Notes

Cet exemple utilise la Provider propriété de la Membership classe pour appeler le SqlMembershipProvider spécifié en tant que defaultProvider dans le fichier Web.config. Si vous devez accéder au fournisseur par défaut en tant que type SqlMembershipProvider, vous pouvez caster la Provider propriété de la Membership classe . Pour accéder à d’autres fournisseurs configurés en tant que type de fournisseur spécifique, vous pouvez y accéder par leur nom configuré avec la Providers propriété de la Membership classe et les convertir en type de fournisseur spécifique.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void ChangePassword_OnClick(object sender, EventArgs args)
{
  try
  {
    // Update the password.

    if (Membership.Provider.ChangePassword(User.Identity.Name, OldPasswordTextbox.Text, PasswordTextbox.Text))
    {
      Msg.Text = "Password changed.";
      return;
    }
  }
  catch
  {
  }

  Msg.Text = "Password change failed. Please re-enter your values and try again.";
}


</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Change Password</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Change Password for <%=User.Identity.Name%></h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" />

  <table cellpadding="3" border="0">
    <tr>
      <td>Old Password:</td>
      <td><asp:Textbox id="OldPasswordTextbox" runat="server" TextMode="Password" /></td>
      <td><asp:RequiredFieldValidator id="OldPasswordRequiredValidator" runat="server"
                                      ControlToValidate="OldPasswordTextbox" ForeColor="red"
                                      Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td>Password:</td>
      <td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td>
      <td><asp:RequiredFieldValidator id="PasswordRequiredValidator" runat="server"
                                      ControlToValidate="PasswordTextbox" ForeColor="red"
                                      Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td>Confirm Password:</td>
      <td><asp:Textbox id="PasswordConfirmTextbox" runat="server" TextMode="Password" /></td>
      <td><asp:RequiredFieldValidator id="PasswordConfirmRequiredValidator" runat="server"
                                      ControlToValidate="PasswordConfirmTextbox" ForeColor="red"
                                      Display="Static" 
                                      ErrorMessage="Required" />
          <asp:CompareValidator id="PasswordConfirmCompareValidator" runat="server"
                                      ControlToValidate="PasswordConfirmTextbox" ForeColor="red"
                                      Display="Static" ControlToCompare="PasswordTextBox"
                                      ErrorMessage="Confirm password must match password." />
      </td>
    </tr>
    <tr>
      <td></td>
      <td><asp:Button id="ChangePasswordButton" Text="Change Password" 
                      OnClick="ChangePassword_OnClick" runat="server" /></td>
    </tr>
  </table>
</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!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 ChangePassword_OnClick(sender As Object, args As EventArgs)
  Try
    ' Update the password.

    If Membership.Provider.ChangePassword(User.Identity.Name, _
                                          OldPasswordTextbox.Text, _
                                          PasswordTextbox.Text) Then 
      Msg.Text = "Password changed."
      Return
    End If
  Catch
  End Try

  Msg.Text = "Password change failed. Please re-enter your values and try again."
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Change Password</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Change Password for <%=User.Identity.Name%></h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" />

  <table cellpadding="3" border="0">
    <tr>
      <td>Old Password:</td>
      <td><asp:Textbox id="OldPasswordTextbox" runat="server" TextMode="Password" /></td>
      <td><asp:RequiredFieldValidator id="OldPasswordRequiredValidator" runat="server"
                                      ControlToValidate="OldPasswordTextbox" ForeColor="red"
                                      Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td>Password:</td>
      <td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td>
      <td><asp:RequiredFieldValidator id="PasswordRequiredValidator" runat="server"
                                      ControlToValidate="PasswordTextbox" ForeColor="red"
                                      Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td>Confirm Password:</td>
      <td><asp:Textbox id="PasswordConfirmTextbox" runat="server" TextMode="Password" /></td>
      <td><asp:RequiredFieldValidator id="PasswordConfirmRequiredValidator" runat="server"
                                      ControlToValidate="PasswordConfirmTextbox" ForeColor="red"
                                      Display="Static" 
                                      ErrorMessage="Required" />
          <asp:CompareValidator id="PasswordConfirmCompareValidator" runat="server"
                                      ControlToValidate="PasswordConfirmTextbox" ForeColor="red"
                                      Display="Static" ControlToCompare="PasswordTextBox"
                                      ErrorMessage="Confirm password must match password." />
      </td>
    </tr>
    <tr>
      <td></td>
      <td><asp:Button id="ChangePasswordButton" Text="Change Password" 
                      OnClick="ChangePassword_OnClick" runat="server" /></td>
    </tr>
  </table>
</form>

</body>
</html>

Remarques

Cette méthode est appelée par la Membership classe pour mettre à jour le mot de passe d’un utilisateur dans la base de données SQL Server spécifiée dans le fichier de configuration de l’application ASP.NET (Web.config).

La longueur maximale du mot de passe est de 128 caractères.

Si un mot de passe incorrect est fourni à la ChangePassword méthode, le compteur interne qui effectue le suivi des tentatives de mot de passe non valides est incrémenté d’un. Cela peut entraîner le verrouillage de l’utilisateur et l’impossibilité de se connecter tant que le verrou status n’est pas effacé par un appel à la UnlockUser méthode . Si le mot de passe correct est fourni et que l’utilisateur n’est pas actuellement verrouillé, les compteurs internes qui effectuent le suivi des tentatives de mot de passe et de réponse de mot de passe non valides sont réinitialisés à zéro. Pour plus d’informations, consultez les propriétés MaxInvalidPasswordAttempts et PasswordAttemptWindow.

Vous pouvez appeler la ChangePassword méthode directement en obtenant d’abord une référence au SqlMembershipProvider instance via la Provider propriété de la Membership classe . La Provider propriété expose le defaultProvider spécifié dans le fichier Web.config de l’application. Fournisseurs configurés qui ne sont pas le fournisseur par défaut référencé à l’aide de la Providers propriété .

Vous pouvez également modifier les mots de passe utilisateur à l’aide de la ChangePassword méthode .

Les espaces de début et de fin sont supprimés de toutes les valeurs de paramètre.

S’applique à

Voir aussi