SqlMembershipProvider.ChangePasswordQuestionAndAnswer 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.
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.
username
adalah null
.
-atau-
password
adalah 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.