我在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配置可以做一些魔术。
请建议我如何在单个应用程序中同时具备这两项功能(将密码与安全答案重置并且没有安全答案)。
非常感谢