SqlMembershipProvider.ChangePasswordQuestionAndAnswer Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
SQL Server üyelik veritabanındaki bir kullanıcı için parola sorusunu ve yanıtını güncelleştirir.
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
Parametreler
- username
- String
Parola sorusunu ve yanıtını değiştirecek kullanıcı.
- password
- String
Belirtilen kullanıcının parolası.
- newPasswordQuestion
- String
Belirtilen kullanıcı için yeni parola sorusu.
- newPasswordAnswer
- String
Belirtilen kullanıcı için yeni parola yanıtı.
Döndürülenler
true
güncelleştirme başarılı olursa; aksi takdirde , false
.
false
yanlışsa, kullanıcı kilitliyse password
veya kullanıcı veritabanında yoksa değeri de döndürülür.
Özel durumlar
username
boş bir dizedir (""), virgül içerir veya 256 karakterden uzundur.
-veya-
password
boş bir dizedir veya 128 karakterden uzundur.
-veya-
newPasswordQuestion
boş bir dizedir veya 256 karakterden uzundur.
-veya-
newPasswordAnswer
boş bir dizedir veya 128 karakterden uzundur.
-veya-
kodlanmış sürümü newPasswordAnswer
128 karakterden uzundur.
username
, null
değeridir.
-veya-
password
, null
değeridir.
-veya-
newPasswordQuestion
ve şeklindedir null
true
.RequiresQuestionAndAnswer
-veya-
newPasswordAnswer
ve şeklindedir null
true
.RequiresQuestionAndAnswer
Veritabanında parola sorusu ve yanıtı değiştirilirken bir hata oluştu.
Örnekler
Aşağıdaki kod örneği, kullanıcı için parola sorusunu ve yanıtını güncelleştirir.
Not
Bu örnek, Web.config dosyasında belirtilen öğesini defaultProvider
çağırmak SqlMembershipProvider için sınıfının özelliğini Membership kullanırProvider. türü SqlMembershipProviderolarak varsayılan sağlayıcıya erişmeniz gerekiyorsa sınıfının özelliğini Membership yayınlayabilirsinizProvider. Belirli bir sağlayıcı türü olarak yapılandırılan diğer sağlayıcılara erişmek için, bu sağlayıcılara sınıfının özelliğiyle ProvidersMembership yapılandırılmış adlarıyla erişebilir ve bunları belirli bir sağlayıcı türü olarak yayınlayabilirsiniz.
<%@ 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>
Açıklamalar
Bu yöntem, ASP.NET uygulamasının MembershipUser yapılandırma dosyasında (Web.config) belirtilen SQL Server veritabanındaki bir kullanıcının parola sorusunu ve yanıtını güncelleştirmek için sınıfı tarafından çağrılır. Parola yanıtı özelliğinde PasswordFormat belirtilen biçim kullanılarak şifrelenir.
Parola sorusu ve yanıtı gerektirmek, kullanıcının parolasını alırken veya sıfırlarken ek bir güvenlik katmanı sağlar. Kullanıcı adı oluştururken, kullanıcı daha sonra unutulan parolayı almak veya sıfırlamak için kullanılabilecek bir soru ve yanıt sağlayabilir. yöntemi, ChangePasswordQuestionAndAnswer üyelik kullanıcısı için parola sorusunu ve yanıtını güncelleştirir.
Yöntemine ChangePasswordQuestionAndAnswer yanlış bir parola sağlanırsa, geçersiz parola girişimlerini izleyen iç sayaçlar bir artırılır. Bu, kullanıcının kilitlenmesine ve yöntemini çağırarak kilit durumu temizlenene kadar oturum açamamasına UnlockUser neden olabilir. Doğru parola sağlandıysa ve kullanıcı şu anda kilitli değilse, geçersiz parolayı ve parola yanıtı girişimlerini izleyen iç sayaçlar sıfıra sıfırlanır. Daha fazla bilgi için MaxInvalidPasswordAttempts ve PasswordAttemptWindow özelliklerine bakın.
Parola sorusunun uzunluk üst sınırı 256 karakterdir. Parola yanıtı için uzunluk üst sınırı 128 karakterdir.
Daha fazla bilgi için bkz. RequiresQuestionAndAnswer, ResetPassword ve GetPassword.
Baştaki ve sondaki boşluklar tüm parametre değerlerinden kırpılır.