SqlMembershipProvider.ChangePassword(String, String, String) Метод

Определение

Изменяет пароль пользователя.

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

Параметры

username
String

Пользователь для обновления пароля.

oldPassword
String

Текущий пароль для указанного пользователя.

newPassword
String

Новый пароль для указанного пользователя.

Возвращаемое значение

true Значение , если пароль был успешно обновлен. false Если предоставленный старый пароль недопустим, пользователь заблокирован или пользователь не существует в базе данных.

Исключения

username — пустая строка (""), содержит запятую или длиннее 256 символов.

–или–

oldPassword — пустая строка или длиннее 128 символов.

–или–

newPassword — пустая строка или длиннее 128 символов.

–или–

Кодированная версия newPassword больше 128 символов.

–или–

Действие изменения пароля было отменено подписчиком ValidatingPassword события, а FailureInformation свойство было null.

–или–

Длина меньше минимальной длины newPassword , указанной в свойстве MinRequiredPasswordLength .

–или–

Число символов, не относящихся к алфавиту, меньше требуемого числа не алфавитных символов newPassword , указанных в свойстве MinRequiredNonAlphanumericCharacters .

–или–

newPassword не передает регулярное выражение, определенное в свойстве PasswordStrengthRegularExpression .

username равно null.

–или–

oldPassword равно null.

–или–

newPassword равно null.

username не найден в базе данных.

Произошла ошибка при установке нового значения пароля в базе данных.

Произошло необработанное исключение.

Примеры

Следующий пример кода изменяет пароль для указанного пользователя.

Замечание

В этом примере свойство Membership класса используется Provider для вызова SqlMembershipProvider указанного в файле defaultProvider Web.config. Если необходимо получить доступ к поставщику по умолчанию в качестве типа SqlMembershipProvider, можно привести Provider свойство Membership класса. Чтобы получить доступ к другим настроенным поставщикам в качестве определенного типа поставщика, вы можете получить доступ к ним по своему имени с Providers помощью свойства класса и привести их в качестве конкретного Membership типа поставщика.

<%@ 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>

Комментарии

Этот метод вызывается классом Membership для обновления пароля пользователя в базе данных SQL Server, указанной в файле конфигурации приложения ASP.NET (Web.config).

Максимальная длина пароля — 128 символов.

Если в метод указан ChangePassword неверный пароль, внутренний счетчик, отслеживающий недопустимые попытки пароля, увеличивается по одному. Это может привести к блокировке пользователя и не сможет войти в систему, пока состояние блокировки не будет удалено вызовом UnlockUser метода. Если указан правильный пароль и пользователь в настоящее время не заблокирован, внутренние счетчики, отслеживающие недопустимый пароль и попытки ответа на пароль, сбрасываются до нуля. Дополнительные сведения см. в MaxInvalidPasswordAttempts разделе и PasswordAttemptWindow свойствах.

Метод можно вызвать ChangePassword напрямую, получив ссылку на SqlMembershipProvider экземпляр с помощью Provider свойства Membership класса. Свойство Provider предоставляет указанный defaultProvider в файле Web.config для приложения. Настроенные поставщики, на которые не ссылается поставщик по умолчанию, используя Providers свойство.

Вы также можете изменить пароли пользователей с помощью ChangePassword метода.

Начальные и конечные пробелы обрезаются от всех значений параметров.

Применяется к

См. также раздел