2011-12-02 44 views
0

我實現了一個自定義Membership提供商爲我現有的數據庫模式具有以下鏈接定義成員資格提供與ChangePassword控件

我已經覆蓋了以下方法CreateUSerValidateUserGetUserChangePasswordResetPassword的幫助。 對於ChangePassword方法,它將驗證「最小長度」以及「字母數字字符數」的新密碼。如果驗證失敗,則該方法會拋出具有確切錯誤的參數異常。

我面對的問題是,我使用內置的更改密碼控制,我得到以下錯誤,"Argumnet exception was unhandled in user code"

而且它會顯示一個通用的錯誤

"Password incorrect or New Password invalid." 

我寧願想,爲什麼密碼驗證失敗,顯示錯誤的確切原因。

我該如何去執行此操作。我將不勝感激任何幫助或指導。

感謝

+0

你在談論哪個鏈接?看看MSDN中的ChangePassword類可能會給你一個更好的想法 –

+1

你有沒有啓用密碼檢索?我建議你發佈改寫更改密碼方法 – naveen

回答

0

的問題是在你執行virtual functionMembershipUser.ChangePassword從MSDN文章likley,它需要花費2個參數:

oldPassword 
    Type:System.String 
    The current password for the membership user. 
newPassword 
    Type:System.String 
    The new password for the membership user. 

沒有看到你ChangePassword功能,我猜你是

  1. 未通過 「舊密碼」 的說法,或
  2. 傳遞不是作爲這兩個參數之一的字符串的值。

編輯:基於您的評論,你真正想要做的是處理ChangePasswordError事件ChangePassword控件的。這會讓您在出現錯誤時提供自定義反饋。

+0

方法簽名是正確的。我使用了以下鏈接http://msdn.microsoft.com/en-us/library/6tc47t75.aspx我想知道的是如何在ChangePassword控件中捕獲提供程序中引發的異常。 – user1077595

+0

@user我已經添加了另一個鏈接到我的答案。據我所知,您實際上無法從MembershipProvider中獲取錯誤,但您可以在鏈接的事件中進行額外的處理以確定原因。 – jadarnel27

+0

ChangePasswordError事件並不指示更改密碼失敗的原因,只是密碼未更改。 – user1077595

0

我遇到同樣的問題。看起來您必須使用常規窗體並創建錯誤處理來顯示您想要的消息,而不是顯示的內置消息。

相關問題