Aracılığıyla paylaş


SqlMembershipProvider.ChangePassword(String, String, String) Yöntem

Tanım

Kullanıcının parolasını değiştirir.

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

Parametreler

username
String

Parolasını güncelleştirecek kullanıcı.

oldPassword
String

Belirtilen kullanıcının geçerli parolası.

newPassword
String

Belirtilen kullanıcının yeni parolası.

Döndürülenler

true parola başarıyla güncelleştirildiyse. false Sağlanan eski parola geçersizse, kullanıcı kilitlenir veya kullanıcı veritabanında mevcut değildir.

Özel durumlar

username boş bir dizedir (""), virgül içerir veya 256 karakterden uzundur.

-veya-

oldPassword boş veya 128 karakterden uzun bir dizedir.

-veya-

newPassword boş veya 128 karakterden uzun bir dizedir.

-veya-

kodlanmış sürümü newPassword 128 karakterden büyük.

-veya-

Parola değiştirme eylemi, olaya abone ValidatingPassword olan bir tarafından iptal edildi ve FailureInformation özelliği oldu null.

-veya-

uzunluğu newPassword özelliğinde MinRequiredPasswordLength belirtilen minimum uzunluktan daha azdır.

-veya-

içindeki newPassword alfabetik olmayan karakterlerin sayısı, özelliğinde belirtilen gerekli alfabetik olmayan karakter sayısından MinRequiredNonAlphanumericCharacters azdır.

-veya-

newPassword özelliğinde tanımlanan normal ifadeyi PasswordStrengthRegularExpression geçirmez.

username, null değeridir.

-veya-

oldPassword, null değeridir.

-veya-

newPassword, null değeridir.

username veritabanında bulunamadı.

Veritabanında yeni parola değeri ayarlanırken bir hata oluştu.

İşlenmeyen bir özel durum oluştu.

Örnekler

Aşağıdaki kod örneği, belirtilen kullanıcının parolasını değiş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 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>

Açıklamalar

Bu yöntem, ASP.NET uygulamasının Membership yapılandırma dosyasında (Web.config) belirtilen SQL Server veritabanındaki bir kullanıcının parolasını güncelleştirmek için sınıfı tarafından çağrılır.

Parola uzunluğu üst sınırı 128 karakterdir.

Yöntemine ChangePassword yanlış parola sağlanırsa, geçersiz parola girişimlerini izleyen iç sayaç bir artırılır. Bu, kullanıcının kilitlenmesine ve yöntemine yapılan bir çağrı tarafından kilit durumu temizleninceye 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.

önce sınıfının özelliği aracılığıyla Provider örneğe bir başvuru SqlMembershipProvider alarak yöntemini doğrudan çağırabilirsiniz ChangePasswordMembership. özelliği, Provider uygulamanın Web.config dosyasında belirtilen öğesini kullanıma sunar defaultProvider . özelliği kullanılarak Providers başvurulan varsayılan sağlayıcı olmayan yapılandırılmış sağlayıcılar.

Yöntemini kullanarak ChangePassword kullanıcı parolalarını da değiştirebilirsiniz.

Baştaki ve sondaki boşluklar tüm parametre değerlerinden kırpılır.

Şunlara uygulanır

Ayrıca bkz.