SqlMembershipProvider.ChangePassword(String, String, String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ş bir dizedir veya 128 karakterden uzundur.
-veya-
newPassword boş bir dizedir veya 128 karakterden uzundur.
-veya-
kodlanmış sürümü newPassword 128 karakterden büyük.
-veya-
Parola değiştirme eylemi, olayın abonesi ValidatingPassword tarafından iptal edildi ve FailureInformation özelliği oldu null.
-veya-
uzunluğu newPassword , özelliğinde belirtilen minimum uzunluktan MinRequiredPasswordLength küçüktür.
-veya-
içindeki newPassword alfabetik olmayan karakter 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'e eşittir.
-veya-
oldPassword, null'e eşittir.
-veya-
newPassword, null'e eşittir.
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.
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 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 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.
ö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 belirtilenleri 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 kullanıcı parolalarını ChangePassword da değiştirebilirsiniz.
Baştaki ve sondaki boşluklar tüm parametre değerlerinden kırpılır.