Bagikan melalui


SqlMembershipProvider.ChangePassword(String, String, String) Metode

Definisi

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 .

usernameadalah null.

-atau-

oldPasswordadalah null.

-atau-

newPasswordadalah 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.

Berlaku untuk

Lihat juga