我有一個C#asp.net應用程序使用默認的Sql MembershipProvider。我的web.config中有控制我如何使用此提供幾個設置:我可以在Asp.Net的MembershipProvider中配置ResetPassword嗎?
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresUniqueEmail="true"
passwordFormat="Hashed"
minRequiredPasswordLength="5"
我遇到的問題是,當人們重置其密碼,似乎ResetPassword()方法返回一個密碼這比我想要的還要長,並且可能會令人迷惑的字符(l,1,i,I,0,O)。此外,我向我的用戶發送一封包含純文本消息和HTML郵件的郵件(我正在使用帶有AlternateViews的MailMessage)。如果密碼中包含不安全的HTML字符,則當電子郵件客戶端呈現HTML文本時,密碼可能會不同(例如%,&和<不完全是HTML安全的)。
我查看了屬於web.config中的「add」元素,但我沒有看到任何額外的配置屬性,只在ResetPassword()方法中包含某些字符並限制了密碼長度。
我可以配置ResetPassword()方法來限制密碼長度並限制它所選擇的字符集嗎?
現在我有一個解決辦法:我叫ResetPassword(),以確保所提供的答案是正確的,然後我用一個RandomPassword generator我下載了互聯網產生,我喜歡(不模糊字符的密碼,HTML安全,只有8個字符長),然後我調用ChangePassword()來更改用戶的密碼後,我已經重置它。
我的解決方法似乎很爛,我認爲最好將ResetPassword()配置爲執行我想要的操作。
謝謝〜!
ColoradoTechie
你有很好的經驗,到目前爲止,與'RandomPassword generator'?我也在尋找這樣的事情,因爲我從來沒有找到配置'ResetPassword'的方法。 – Slauma 2010-04-02 17:34:59
我個人喜歡它,但是我們還沒有完成我們的應用程序的構建,所以我不確定它是如何在生產中。現在我調用它兩次(newPassword = RandomPassword.Generate(7)+ RandomPassword.Generate(1);),因爲我希望我的新密碼以字符開頭和結尾(如果您閱讀註釋,代碼將始終生成以字符開頭的密碼)。我也喜歡我如何限制特殊字符。 – 2010-04-05 15:45:35
需要注意的一點是:我不知道MembershipProvider是否會限制您經常更改密碼,因此如果您重置了人員的密碼並進行更改,您可能需要增加人員可以更改的次數他們的密碼。 – 2010-04-05 15:47:24