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, für den das 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 ist, ist der Benutzer gesperrt, oder der Benutzer ist nicht in der Datenbank vorhanden.

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 128 Zeichen ist größer als 128 Zeichen.

- oder -

Die Änderungskennwortaktion wurde von einem Abonnent des ValidatingPassword Ereignisses abgebrochen, und die FailureInformation Eigenschaft war null.

- oder -

Die Länge ist newPassword kleiner als die in der MinRequiredPasswordLength Eigenschaft angegebene Mindestlänge.

- oder -

Die Anzahl nicht alphabetischer Zeichen in newPassword ist kleiner als die erforderliche Anzahl nicht alphabetischer Zeichen, die in der MinRequiredNonAlphanumericCharacters Eigenschaft angegeben sind.

- oder -

newPassword gibt den in der PasswordStrengthRegularExpression Eigenschaft definierten regulären Ausdruck nicht weiter.

username ist null.

- oder -

oldPassword ist null.

- oder -

newPassword ist null.

username wurde in der Datenbank nicht gefunden.

Fehler beim Festlegen des neuen Kennwortwerts in der Datenbank.

Es ist eine unbehandelte Ausnahme aufgetreten.

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 in der Web.config-Datei angegebene defaultProvider Eigenschaft aufzurufen. Wenn Sie als Typ SqlMembershipProviderauf den Standardanbieter zugreifen müssen, können Sie die Provider Eigenschaft der Membership Klasse umwandeln. Wenn Sie auf andere konfigurierte Anbieter als bestimmten Anbietertyp zugreifen möchten, können Sie über den konfigurierten Namen mit der Providers Eigenschaft der Membership Klasse darauf zugreifen und sie als bestimmten 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 angegeben ist (Web.config).

Die maximale Kennwortlänge beträgt 128 Zeichen.

Wenn der Methode ein falsches Kennwort angegeben ChangePassword 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 zurzeit nicht gesperrt ist, werden die internen Indikatoren, die ungültiges Kennwort und Kennwortantwortversuche nachverfolgen, auf Null zurückgesetzt. Weitere Informationen finden Sie unter den MaxInvalidPasswordAttempts Und PasswordAttemptWindow Eigenschaften.

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

Sie können benutzerwörter auch mithilfe der ChangePassword Methode ändern.

Führende und nachfolgende Leerzeichen werden von allen Parameterwerten gekürzt.

Gilt für:

Weitere Informationen