2011-11-17 130 views
1

我正在使用更改密碼嚮導來更改密碼。是否有任何方法檢查輸入的密碼和新密碼是否相同,如果相同,則顯示錯誤消息?我嘗試使用代碼,但它給出了錯誤消息,並且還提供了一條成功消息,指出密碼已更改。是否可以把一些比較驗證器來檢查這些值?更改密碼控制驗證

+0

隨着張貼出你所編寫的代碼,我們怎麼能知道什麼在你的代碼中的錯誤? –

+0

標準更改密碼控制具有驗證新密碼和確認新密碼之間的比較。但不在當前密碼和新密碼之間 – user662417

+0

您可以將轉換爲模板後的invalid-logincontrol中的比較驗證程序 它將工作 –

回答

0

我得到了解決。代替使用更改密碼模板,我使用代碼

protected void ChangePassword1_ChangedPassword(object sender, EventArgs e) 
    { 

     if (ChangePassword1.CurrentPassword == ChangePassword1.NewPassword) 
     { 
      Response.Redirect("ChangePassword.aspx"); 

     } 
     //Label1.Text = "current and new passwords should not match";   
     Label1.Visible = false; 
    } 

最初lable1輸入了不同的當前密碼和新密碼。

2

在您的更改密碼網頁上添加一個驗證器。 嘗試以下方法驗證:

<asp:CompareValidator ID="CompareValidator1" 
    runat="server" 
    ControlToCompare="NewPassword" // ID of your new password field 
    ControlToValidate="CurrentPassword" //ID of current password field 
    ErrorMessage="You should enter different password." 
    ForeColor="Red"> 
</asp:CompareValidator> 
+0

我嘗試使用ur代碼。它出現錯誤,如「無法找到'CompareValidator1'的'ControlToCompare'屬性引用的控件ID'NewPassword'」。 – user662417

+0

@ user662417:你不應該像NewPassword一樣使用,你應該使用你擁有的域名的id –

+1

你應該用你的控件ID替換「New Password」。這只是一個例子。 –

0

如果你創建自己的控制,

1. check the current user who is logged in 
2. when user try to change the password, probably a button click 
    get the users unique id and match the new password and old password. 
3. If password match return an error, update the database with new password otherwise 
+0

我沒有創建自己的控件。我正在使用changepassword嚮導 – user662417

0

嘗試

ASP:CompareValidator

與運營商 「屬性= NotEqual」

這應該工作

0

你應該有兩個文本框,讓我們說txtNewPasswordtxtRePass。這將完成這項工作,如下圖所示,<asp:CompareValidator>將完成這項工作。 但是,如果你也想要一個額外的驗證,你還可以添加Validation Group = ""

<asp:CompareValidator runat="server" ID="Comp1" ControlToValidate="txtNewPassword" ControlToCompare="txtRePass" Text="Password mismatch" Font-Size="11px" ForeColor="Red"/>`