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 метода.
Начальные и конечные пробелы обрезаются от всех значений параметров.