SqlMembershipProvider.ChangePassword(String, String, String) Methode

Definitie

Hiermee wijzigt u het wachtwoord van een gebruiker.

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

Parameters

username
String

De gebruiker waarvoor het wachtwoord moet worden bijgewerkt.

oldPassword
String

Het huidige wachtwoord voor de opgegeven gebruiker.

newPassword
String

Het nieuwe wachtwoord voor de opgegeven gebruiker.

Retouren

true als het wachtwoord is bijgewerkt. false als het opgegeven oude wachtwoord ongeldig is, is de gebruiker vergrendeld of bestaat de gebruiker niet in de database.

Uitzonderingen

username is een lege tekenreeks (""), bevat een komma of langer dan 256 tekens.

– of –

oldPassword is een lege tekenreeks of langer dan 128 tekens.

– of –

newPassword is een lege tekenreeks of langer dan 128 tekens.

– of –

De gecodeerde versie van newPassword 128 tekens is groter dan 128 tekens.

– of –

De wijzigingswachtwoordactie is geannuleerd door een abonnee van de ValidatingPassword gebeurtenis en de FailureInformation eigenschap was null.

– of –

De lengte is newPassword kleiner dan de minimale lengte die is opgegeven in de MinRequiredPasswordLength eigenschap.

– of –

Het aantal niet-alfabetische tekens is newPassword kleiner dan het vereiste aantal niet-alfabetische tekens dat is opgegeven in de MinRequiredNonAlphanumericCharacters eigenschap.

– of –

newPassword geeft de reguliere expressie die is gedefinieerd in de PasswordStrengthRegularExpression eigenschap niet door.

username is null.

– of –

oldPassword is null.

– of –

newPassword is null.

username is niet gevonden in de database.

Er is een fout opgetreden bij het instellen van de nieuwe wachtwoordwaarde in de database.

Er is een onverwerkte uitzondering opgetreden.

Voorbeelden

In het volgende codevoorbeeld wordt het wachtwoord voor de opgegeven gebruiker gewijzigd.

Note

In dit voorbeeld wordt de Provider eigenschap van de Membership klasse gebruikt om de SqlMembershipProvider opgegeven waarde defaultProvider in het Web.config-bestand aan te roepen. Als u toegang wilt krijgen tot de standaardprovider als het type SqlMembershipProvider, kunt u de Provider eigenschap van de Membership klasse casten. Als u toegang wilt krijgen tot andere geconfigureerde providers als een specifiek providertype, kunt u ze openen met hun geconfigureerde naam met de Providers eigenschap van de Membership klasse en deze casten als het specifieke providertype.

<%@ 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>

Opmerkingen

Deze methode wordt aangeroepen door de klasse Membership om het wachtwoord voor een gebruiker in de SQL Server-database bij te werken die is opgegeven in het configuratiebestand van de ASP.NET toepassing (Web.config).

De maximale wachtwoordlengte is 128 tekens.

Als er een onjuist wachtwoord wordt opgegeven voor de ChangePassword methode, wordt de interne teller waarmee ongeldige wachtwoordpogingen worden bijgehouden, met één verhoogd. Dit kan ertoe leiden dat de gebruiker wordt vergrendeld en zich niet kan aanmelden totdat de vergrendelingsstatus wordt gewist door een aanroep naar de UnlockUser methode. Als het juiste wachtwoord is opgegeven en de gebruiker momenteel niet is vergrendeld, worden de interne tellers die ongeldig wachtwoord bijhouden en pogingen voor wachtwoordantwoorden opnieuw ingesteld op nul. Zie de eigenschappen MaxInvalidPasswordAttempts en PasswordAttemptWindow voor meer informatie.

U kunt de ChangePassword methode rechtstreeks aanroepen door eerst een verwijzing naar het SqlMembershipProvider exemplaar te verkrijgen via de Provider eigenschap van de Membership klasse. De Provider eigenschap toont de defaultProvider opgegeven in het Web.config-bestand voor de toepassing. Geconfigureerde providers die niet de standaardprovider zijn waarnaar wordt verwezen met behulp van de Providers eigenschap.

U kunt gebruikerswachtwoorden ook wijzigen met behulp van de ChangePassword methode.

Voorloop- en volgspaties worden afgekapt van alle parameterwaarden.

Van toepassing op

Zie ook