Aracılığıyla paylaş


SqlMembershipProvider.ChangePasswordQuestionAndAnswer Yöntem

Tanım

SQL Server üyelik veritabanındaki bir kullanıcının 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 değiştirmek ve yanıtlamak için 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. yanlışsa false , 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'e eşittir.

-veya-

password, null'e eşittir.

-veya-

newPasswordQuestion ve nullRequiresQuestionAndAnswer şeklindedir true.

-veya-

newPasswordAnswer ve nullRequiresQuestionAndAnswer şeklindedir true.

Veritabanında parola sorusu ve yanıtı değiştirilirken bir hata oluştu.

Örnekler

Aşağıdaki kod örneği, bir kullanıcı için parola sorusunu ve yanıtını güncelleştirir.

Uyarı

Bu örnek, Web.config dosyasında olarak belirtilen defaultProvider öğesini ç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 ProvidersMembership özelliğiyle yapılandırılmış adlarıyla erişebilir ve bunları belirli 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ış 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ğlanırsa 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 ve PasswordAttemptWindow özelliklerine MaxInvalidPasswordAttempts 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.

Şunlara uygulanır

Ayrıca bkz.