我在MVC 3中使用AspNet成員資格提供程序。 我在更改密碼時遇到問題。 我有兩個功能在我的項目更改AspNet中的密碼問題MembershipProvider
- 忘記密碼:問安全問題,並基於安全的答案更改密碼。
- 管理員更改密碼:管理員可以在不知道舊密碼或安全答案的情況下更改任何用戶的密碼。
現在的問題是,功能#1,我不得不在網絡配置的變化作出requiresQuestionAndAnswer="true"
更改口令,這樣我可以更改密碼只有安全的答案是有效的。
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
,我使用下面的代碼改變密碼忘記密碼:
string resetPassword = res.ResetPassword(model.PasswordAnswer);
MembershipService.ChangePassword(model.Username, newPassword, model.NewPassword)
現在
的情況#2,那裏的管理員我想設施更改任何用戶的密碼,不知道舊密碼或安全答案。這是唯一可能的(據我所知)通過使requiresQuestionAndAnswer="false"
。
注意:我爲管理部分使用單獨的MVC AREA
,所以可能是另一個web配置可以做一些魔術。
請建議我如何在單個應用程序中同時具備這兩項功能(將密碼與安全答案重置並且沒有安全答案)。
非常感謝