SqlMembershipProvider.ChangePassword(String, String, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ä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.