2010-10-23 129 views
0

我已經在web.config文件的成員資格部分設置了minRequiredPasswordLength,minRequiredNonalphanumericCharacters。但我需要最大密碼長度也設置。如何在web.config文件中設置?如何在web.config文件中設置最大密碼長度?

+0

你打算使用ASP.NET登錄控件(http://msdn.microsoft.com/en-us/library/tz6e5ezc.aspx)要創建界面,還是計劃基於標準控件構建自定義界面,以執行註冊/登錄/密碼恢復等操作? – 2010-10-23 09:52:57

+0

雅即時使用ASP.NET登錄控件... – Abilash 2010-10-23 09:59:41

+0

請參閱http://www.codeproject.com/KB/aspnet/Password_Recovery.aspx?fid=343748&df=90&mpp=10&noise=5&sort=Position&view=None&fr=11自定義恢復控制的示例。 – 2010-10-26 20:21:04

回答

1

我認爲MembershipProvider的默認實現不支持此功能。但是,通過在用戶設置/更改密碼時驗證密碼長度,您可以獲得相同的結果。

如果您使用的是標準的實施與PasswordRecovery控件您無法用新密碼的產生干擾MembershipProvider類的相關PasswordRecovery控件

編輯(更準確地說ResetPassword - 「重置用戶密碼到一個新的,自動生成的密碼「)。 如果你想使用PasswordRecovery控件,除了創建從抽象MembershipProvider類派生的自定義成員資格提供者或者從其具體實現(如SqlMembershipProvider)之外創建自定義成員資格提供者之外,沒有其他選擇。

另一個選擇是實現您的自定義密碼恢復界面,因爲您仍然可以依賴於您的MembershipProvider中實現的功能。當用戶想要重置密碼時,可以使用GetUser方法獲取相關信息,然後使用ResetPassword獲取新密碼。在這一刻,您可以使用ResetPassword返回的密碼並調用ChangePassword來設置符合條件的新密碼,然後將其發送給用戶。有很多方法可以實現相應的用戶界面,但重置密碼邏輯幾乎相同。如果您決定保持密碼加密而不是散列滿足您的要求,您的問題將得到解決,因爲用戶將通過電子郵件接收他們的舊密碼(從設置時刻開始符合最大長度條件)。爲此,在web.config中進行以下更改:

 Passwordformat="encrypted" 
     Passwordreset="true" 
     Passwordretriaval="true" 
+0

我使用密碼恢復控制,它會自動重置並向相應用戶發送密碼。用戶收到的密碼是最小長度,但不是最大長度。在這種情況下,我可以在哪裏驗證密碼長度? – Abilash 2010-10-23 10:08:06