Bagikan melalui


SqlMembershipProvider.ChangePasswordQuestionAndAnswer Metode

Definisi

Memperbarui pertanyaan dan jawaban kata sandi untuk pengguna di database keanggotaan SQL Server.

public:
 override bool ChangePasswordQuestionAndAnswer(System::String ^ username, System::String ^ password, System::String ^ newPasswordQuestion, System::String ^ newPasswordAnswer);
public override bool ChangePasswordQuestionAndAnswer (string username, string password, string newPasswordQuestion, string newPasswordAnswer);
override this.ChangePasswordQuestionAndAnswer : string * string * string * string -> bool
Public Overrides Function ChangePasswordQuestionAndAnswer (username As String, password As String, newPasswordQuestion As String, newPasswordAnswer As String) As Boolean

Parameter

username
String

Pengguna untuk mengubah pertanyaan dan jawaban kata sandi.

password
String

Kata sandi untuk pengguna yang ditentukan.

newPasswordQuestion
String

Pertanyaan kata sandi baru untuk pengguna yang ditentukan.

newPasswordAnswer
String

Jawaban kata sandi baru untuk pengguna yang ditentukan.

Mengembalikan

true jika pembaruan berhasil; jika tidak, false. Nilai false juga dikembalikan jika password salah, pengguna dikunci, atau pengguna tidak ada dalam database.

Pengecualian

username adalah string kosong (""), berisi koma, atau lebih panjang dari 256 karakter.

-atau-

password adalah string kosong atau lebih panjang dari 128 karakter.

-atau-

newPasswordQuestion adalah string kosong atau lebih panjang dari 256 karakter.

-atau-

newPasswordAnswer adalah string kosong atau lebih panjang dari 128 karakter.

-atau-

Versi yang dikodekan lebih panjang dari newPasswordAnswer 128 karakter.

usernameadalah null.

-atau-

passwordadalah null.

-atau-

newPasswordQuestion adalah null dan RequiresQuestionAndAnswer adalah true.

-atau-

newPasswordAnswer adalah null dan RequiresQuestionAndAnswer adalah true.

Terjadi kesalahan saat mengubah pertanyaan dan jawaban kata sandi dalam database.

Contoh

Contoh kode berikut memperbarui pertanyaan dan jawaban kata sandi untuk pengguna.

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 Membership kelas . 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 ChangePasswordQuestion_OnClick(object sender, EventArgs args)
{
  try
  {
    if (Membership.Provider.ChangePasswordQuestionAndAnswer(User.Identity.Name,
                                                            PasswordTextbox.Text, 
                                                            QuestionTextbox.Text, 
                                                            AnswerTextbox.Text))
      Msg.Text = "Password question and answer changed.";
    else
      Msg.Text = "Change failed. Please reenter your values and try again.";
  }
  catch (System.Configuration.Provider.ProviderException e)
  {
    Msg.Text = "Change failed. Please reenter your values and try again.";
  }
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Change Password Question and Answer</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Change Password Question and Answer for <%=User.Identity.Name%></h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  <table cellpadding="3" border="0">
    <tr>
      <td>Password:</td>
      <td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td>
      <td><asp:RequiredFieldValidator id="OldPasswordRequiredValidator" runat="server"
                                    ControlToValidate="PasswordTextbox" ForeColor="red"
                                    Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td>New Password Question:</td>
      <td><asp:Textbox id="QuestionTextbox" MaxLength="256" Columns="60" runat="server" /></td>
      <td><asp:RequiredFieldValidator id="QuestionRequiredValidator" runat="server"
                                    ControlToValidate="QuestionTextbox" ForeColor="red"
                                    Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td>New Password Answer:</td>
      <td><asp:Textbox id="AnswerTextbox" MaxLength="128" Columns="60" runat="server" /></td>
      <td><asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
                                    ControlToValidate="AnswerTextbox" ForeColor="red"
                                    Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td></td>
      <td><asp:Button id="ChangePasswordQuestionButton" 
                      Text="Change Password Question and Answer" 
                      OnClick="ChangePasswordQuestion_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 ChangePasswordQuestion_OnClick(sender As Object, args As EventArgs)

  Try
    If Membership.Provider.ChangePasswordQuestionAndAnswer(User.Identity.Name, _
                                                          PasswordTextbox.Text, _ 
                                                          QuestionTextbox.Text, _
                                                          AnswerTextbox.Text) Then
      Msg.Text = "Password question and answer changed."
    Else
      Msg.Text = "Change failed. Please reenter your values and try again."
    End If
  Catch e As System.Configuration.Provider.ProviderException
    Msg.Text = "Change failed. Please reenter your values and try again."
  End Try

End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Change Password Question and Answer</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Change Password Question and Answer for <%=User.Identity.Name%></h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  <table cellpadding="3" border="0">
    <tr>
      <td>Password:</td>
      <td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td>
      <td><asp:RequiredFieldValidator id="OldPasswordRequiredValidator" runat="server"
                                    ControlToValidate="PasswordTextbox" ForeColor="red"
                                    Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td>New Password Question:</td>
      <td><asp:Textbox id="QuestionTextbox" MaxLength="256" Columns="60" runat="server" /></td>
      <td><asp:RequiredFieldValidator id="QuestionRequiredValidator" runat="server"
                                    ControlToValidate="QuestionTextbox" ForeColor="red"
                                    Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td>New Password Answer:</td>
      <td><asp:Textbox id="AnswerTextbox" MaxLength="128" Columns="60" runat="server" /></td>
      <td><asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
                                    ControlToValidate="AnswerTextbox" ForeColor="red"
                                    Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td></td>
      <td><asp:Button id="ChangePasswordQuestionButton" 
                      Text="Change Password Question and Answer" 
                      OnClick="ChangePasswordQuestion_OnClick" 
                      runat="server" /></td>
    </tr>
  </table>
</form>

</body>
</html>

Keterangan

Metode ini dipanggil oleh MembershipUser kelas untuk memperbarui pertanyaan dan jawaban kata sandi untuk pengguna di database SQL Server yang ditentukan dalam file konfigurasi aplikasi ASP.NET (Web.config). Jawaban kata sandi dienkripsi menggunakan format yang ditentukan dalam PasswordFormat properti .

Memerlukan pertanyaan dan jawaban kata sandi memberikan lapisan keamanan tambahan saat mengambil atau mengatur ulang kata sandi pengguna. Saat membuat nama pengguna, pengguna dapat memberikan pertanyaan dan jawaban yang nantinya dapat digunakan untuk mengambil atau mengatur ulang kata sandi yang terlupakan. Metode ini ChangePasswordQuestionAndAnswer memperbarui pertanyaan dan jawaban kata sandi untuk pengguna keanggotaan.

Jika kata sandi yang salah diberikan ke ChangePasswordQuestionAndAnswer metode , penghitung internal yang melacak upaya kata sandi yang tidak valid ditambahkan oleh satu. Ini dapat mengakibatkan pengguna dikunci dan tidak dapat masuk hingga status kunci dibersihkan dengan memanggil 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.

Panjang maksimum untuk pertanyaan kata sandi adalah 256 karakter. Panjang maksimum untuk jawaban kata sandi adalah 128 karakter.

Untuk informasi selengkapnya, lihat RequiresQuestionAndAnswer, ResetPassword, and GetPassword.

Spasi di depan dan di belakang dipangkas dari semua nilai parameter.

Berlaku untuk

Lihat juga