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
не был найден в базе данных.
Ошибка возникает при размещении нового пароля в базе данных.
Произошло необработанное исключение.
Примеры
В следующем примере кода изменяется пароль для указанного пользователя.
Примечание
В этом примере свойство класса используется Provider для Membership вызова указанного 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 метода .
Начальные и конечные пробелы обрезаются из всех значений параметров.