Freigeben über


SqlMembershipProvider.ChangePassword(String, String, String) Methode

Definition

Ändert das Kennwort eines Benutzers.

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

Parameter

username
String

Der Benutzer, dessen Kennwort aktualisiert werden soll.

oldPassword
String

Das aktuelle Kennwort für den angegebenen Benutzer.

newPassword
String

Das neue Kennwort für den angegebenen Benutzer.

Gibt zurück

true, wenn das Kennwort erfolgreich aktualisiert wurde. false, wenn das angegebene alte Kennwort ungültig, der Benutzer gesperrt oder in der Datenbank nicht vorhanden ist.

Ausnahmen

username ist eine leere Zeichenfolge (""), enthält ein Komma oder ist länger als 256 Zeichen.

- oder -

oldPassword ist eine leere Zeichenfolge oder länger als 128 Zeichen.

- oder -

newPassword ist eine leere Zeichenfolge oder länger als 128 Zeichen.

- oder -

Die codierte Version von newPassword ist länger als 128 Zeichen.

- oder -

Der Vorgang zum Ändern des Kennworts wurde von einem Abonnenten des ValidatingPassword-Ereignisses abgebrochen, und die FailureInformation-Eigenschaft war null.

- oder -

newPassword ist weniger lang als die minimale, in der MinRequiredPasswordLength-Eigenschaft angegebene Länge.

- oder -

Die Anzahl von nicht alphabetischen Zeichen in newPassword ist kleiner als die in der MinRequiredNonAlphanumericCharacters-Eigenschaft angegebene, erforderliche Anzahl von nicht alphabetischen Zeichen.

- oder -

newPassword entspricht nicht den Kriterien für reguläre Ausdrücke, die in der PasswordStrengthRegularExpression-Eigenschaft definiert sind.

username ist null.

- oder -

oldPassword ist null.

- oder -

newPassword ist null.

username wurde in der Datenbank nicht gefunden.

Beim Festlegen des neuen Kennwortwerts in der Datenbank ist ein Fehler aufgetreten.

Unbehandelte Ausnahme.

Beispiele

Im folgenden Codebeispiel wird das Kennwort für den angegebenen Benutzer geändert.

Hinweis

In diesem Beispiel wird die Provider -Eigenschaft der Membership -Klasse verwendet, um die SqlMembershipProvider angegebene als in defaultProvider der Web.config-Datei aufzurufen. Wenn Sie auf den Standardanbieter als Typ SqlMembershipProviderzugreifen müssen, können Sie die Provider -Eigenschaft der Membership -Klasse umwandeln. Um auf andere konfigurierte Anbieter als bestimmten Anbietertyp zuzugreifen, können Sie über ihren konfigurierten Namen mit der Providers -Eigenschaft der Membership -Klasse auf sie zugreifen und sie in den spezifischen Anbietertyp umwandeln.

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

Hinweise

Diese Methode wird von der Membership -Klasse aufgerufen, um das Kennwort für einen Benutzer in der SQL Server-Datenbank zu aktualisieren, die in der Konfigurationsdatei der ASP.NET Anwendung (Web.config) angegeben ist.

Die maximale Kennwortlänge beträgt 128 Zeichen.

Wenn ein falsches Kennwort für die ChangePassword -Methode angegeben wird, wird der interne Zähler, der ungültige Kennwortversuche nachverfolgt, um eins erhöht. Dies kann dazu führen, dass der Benutzer gesperrt wird und sich nicht anmelden kann, bis der Sperrstatus durch einen Aufruf der UnlockUser -Methode gelöscht wird. Wenn das richtige Kennwort angegeben wird und der Benutzer derzeit nicht gesperrt ist, werden die internen Leistungsindikatoren, die ungültige Kennwort- und Kennwortantwortversuche nachverfolgen, auf Null zurückgesetzt. Weitere Informationen finden Sie in den Ausführungen zur MaxInvalidPasswordAttempts-Eigenschaft und zur PasswordAttemptWindow-Eigenschaft.

Sie können die ChangePassword -Methode direkt aufrufen, indem Sie zunächst über die SqlMembershipProvider -Eigenschaft der -Klasse einen Verweis auf die ProviderMembership -Instanz abrufen. Die Provider -Eigenschaft macht den defaultProvider in der Web.config-Datei für die Anwendung angegebenen verfügbar. Konfigurierte Anbieter, die nicht der Standardanbieter sind, auf den mithilfe der Providers -Eigenschaft verwiesen wird.

Sie können auch Benutzerkennwörter mit der ChangePassword -Methode ändern.

Führende und nachfolgende Leerzeichen werden auf alle Parameterwerte gekürzt.

Gilt für:

Weitere Informationen