SqlMembershipProvider.ChangePassword(String, String, String) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memodifikasi kata sandi pengguna.
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
Pengguna untuk memperbarui kata sandi.
- oldPassword
- String
Kata sandi saat ini untuk pengguna yang ditentukan.
- newPassword
- String
Kata sandi baru untuk pengguna yang ditentukan.
Mengembalikan
true
jika kata sandi berhasil diperbarui.
false
jika kata sandi lama yang disediakan tidak valid, pengguna dikunci, atau pengguna tidak ada di database.
Pengecualian
username
adalah string kosong (""), berisi koma, atau lebih panjang dari 256 karakter.
-atau-
oldPassword
adalah string kosong atau lebih panjang dari 128 karakter.
-atau-
newPassword
adalah string kosong atau lebih panjang dari 128 karakter.
-atau-
Versi yang dikodekan lebih besar dari newPassword
128 karakter.
-atau-
Tindakan ubah kata sandi dibatalkan oleh pelanggan acara ValidatingPassword , dan FailureInformation propertinya adalah null
.
-atau-
Panjang kurang dari newPassword
panjang minimum yang ditentukan dalam MinRequiredPasswordLength properti .
-atau-
Jumlah karakter non-alfabet dalam newPassword
kurang dari jumlah karakter non-alfabet yang diperlukan yang ditentukan dalam MinRequiredNonAlphanumericCharacters properti .
-atau-
newPassword
tidak meneruskan ekspresi reguler yang ditentukan dalam PasswordStrengthRegularExpression properti .
username
adalah null
.
-atau-
oldPassword
adalah null
.
-atau-
newPassword
adalah null
.
username
tidak ditemukan dalam database.
Terjadi kesalahan saat mengatur nilai kata sandi baru di database.
Terjadi pengecualian yang tidak tertangani.
Contoh
Contoh kode berikut memodifikasi kata sandi untuk pengguna yang ditentukan.
Catatan
Contoh ini menggunakan Provider properti Membership kelas untuk memanggil SqlMembershipProvider yang ditentukan sebagai defaultProvider
dalam file Web.config. Jika Anda perlu mengakses penyedia default sebagai jenis SqlMembershipProvider, Anda dapat melemparkan Provider properti kelas Membership . Untuk mengakses penyedia lain yang dikonfigurasi sebagai jenis penyedia tertentu, Anda dapat mengaksesnya dengan nama yang dikonfigurasi dengan Providers properti Membership kelas dan mentransmisikannya sebagai jenis penyedia tertentu.
<%@ 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>
Keterangan
Metode ini dipanggil oleh Membership kelas untuk memperbarui kata sandi untuk pengguna dalam database SQL Server yang ditentukan dalam file konfigurasi aplikasi ASP.NET (Web.config).
Panjang kata sandi maksimum adalah 128 karakter.
Jika kata sandi yang salah diberikan ke ChangePassword metode , penghitung internal yang melacak upaya kata sandi yang tidak valid ditingkatkan oleh satu. Ini dapat mengakibatkan pengguna dikunci dan tidak dapat masuk hingga status kunci dibersihkan oleh panggilan ke UnlockUser metode . Jika kata sandi yang benar disediakan dan pengguna saat ini tidak dikunci, maka penghitung internal yang melacak kata sandi yang tidak valid dan upaya jawaban kata sandi diatur ulang ke nol. Untuk informasi selengkapnya, lihat properti MaxInvalidPasswordAttempts dan PasswordAttemptWindow.
Anda dapat memanggil metode secara ChangePassword langsung dengan terlebih dahulu mendapatkan referensi ke SqlMembershipProvider instans melalui Provider properti Membership kelas . Properti Provider mengekspos defaultProvider
yang ditentukan dalam file Web.config untuk aplikasi. Penyedia yang dikonfigurasi yang bukan penyedia default yang dirujuk menggunakan Providers properti .
Anda juga dapat mengubah kata sandi pengguna dengan menggunakan ChangePassword metode .
Spasi di depan dan di belakang dipangkas dari semua nilai parameter.