SqlMembershipProvider.ChangePassword(String, String, String) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Ändrar en användares lösenord.
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
Parametrar
- username
- String
Användaren som lösenordet ska uppdateras för.
- oldPassword
- String
Det aktuella lösenordet för den angivna användaren.
- newPassword
- String
Det nya lösenordet för den angivna användaren.
Returer
true om lösenordet har uppdaterats.
false Om det angivna gamla lösenordet är ogiltigt är användaren utelåst eller om användaren inte finns i databasen.
Undantag
username är en tom sträng (""), innehåller ett kommatecken eller är längre än 256 tecken.
-eller-
oldPassword är en tom sträng eller längre än 128 tecken.
-eller-
newPassword är en tom sträng eller längre än 128 tecken.
-eller-
Den kodade versionen av newPassword är större än 128 tecken.
-eller-
Åtgärden ändra lösenord avbröts av en prenumerant på ValidatingPassword händelsen och egenskapen FailureInformation var null.
-eller-
Längden newPassword på är mindre än den minsta längd som anges i egenskapen MinRequiredPasswordLength .
-eller-
Antalet icke-alfabetiska tecken i newPassword är mindre än det antal icke-alfabetiska tecken som anges i egenskapen MinRequiredNonAlphanumericCharacters .
-eller-
newPassword skickar inte det reguljära uttryck som definierats i egenskapen PasswordStrengthRegularExpression .
username hittades inte i databasen.
Ett fel uppstod när det nya lösenordsvärdet skulle anges i databasen.
Ett ohanterat undantag inträffade.
Exempel
I följande kodexempel ändras lösenordet för den angivna användaren.
Note
I det Provider här exemplet används egenskapen för Membership klassen för att anropa den SqlMembershipProvider angivna som defaultProvider i filen Web.config. Om du behöver komma åt standardprovidern som typ SqlMembershipProviderkan du omvandla Provider egenskapen för Membership klassen. För att få åtkomst till andra konfigurerade leverantörer som en specifik providertyp kan du komma åt dem med deras konfigurerade namn med Providers egenskapen Membership för klassen och omvandla dem som den specifika providertypen.
<%@ 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>
Kommentarer
Den här metoden anropas av klassen Membership för att uppdatera lösenordet för en användare i den SQL Server databas som anges i ASP.NET-programmets konfigurationsfil (Web.config).
Den maximala lösenordslängden är 128 tecken.
Om ett felaktigt lösenord anges till ChangePassword metoden ökas den interna räknaren som spårar ogiltiga lösenordsförsök med ett. Detta kan leda till att användaren blir utelåst och inte kan logga in förrän låsstatusen har rensats av ett anrop till UnlockUser metoden. Om rätt lösenord anges och användaren för närvarande inte är utelåst återställs de interna räknare som spårar ogiltiga lösenords- och lösenordssvarsförsök till noll. Mer information finns i egenskaperna MaxInvalidPasswordAttempts och PasswordAttemptWindow.
Du kan anropa ChangePassword metoden direkt genom att först hämta en referens till instansen SqlMembershipProviderProvider via egenskapen för Membership klassen. Egenskapen Provider exponerar den defaultProvider angivna i Web.config-filen för programmet. Konfigurerade leverantörer som inte är standardprovidern som refereras med egenskapen Providers .
Du kan också ändra användarlösenord ChangePassword med hjälp av metoden .
Inledande och avslutande blanksteg trimmas från alla parametervärden.