Я использую AspNet Membership Provider в MVC 3. У меня проблема с изменением пароля.У меня есть две функции в моем проекте
- Забыл пароль: задайте секретный вопрос и на основании безопасного ответа смените пароль.
- Администратор сменить пароль: администратор может сменить пароль любого пользователя, не знаястарый пароль или секретный ответ.
Теперь проблема в том, что для функциональности # 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
для административной части, поэтому может быть другая веб-конфигурация может творить чудеса.
подскажите, пожалуйста, как можно объединить обе функции (сброс пароля с защитным ответом и без защитного ответа) в одном приложении.
Большое спасибо