MembershipUser.ChangePassword не работает без предупреждения

Если я вызываю user.ChangePassword (oldpass, newpass), а старый пароль неверен или новый пароль не соответствует требованиям сложности поставщика, метод завершается ошибкой без предупреждения. Есть ли способ узнать, есть ли ошибка и что это за ошибка.

Я всегда могу поместить эти проверки в свой код, но должен быть способ сделать это с помощью API членства.


person Midhat    schedule 21.05.2009    source источник


Ответы (1)


К сожалению нет. Метод ChangePassword возвращает только простой bool для успеха / неудачи.

Лучшим вариантом в случае сбоя было бы отображение общего сообщения для пользователя с указанием всех возможных причин сбоя ... например,

Не удалось изменить пароль.
Это могло произойти по следующим причинам:

  • Старый пароль был неверным
  • Новый пароль не соответствовал требуемой сложности
  • Новые пароли должны состоять из 8 символов и содержать не менее 2 цифровых символов. (или что-то еще)

Если вы хотите предоставить более конкретную информацию, то, как вы сказали, вам нужно будет реализовать средство проверки правил в своем собственном коде и передавать информацию пользователю на основе этой проверки.

person Eoin Campbell    schedule 21.05.2009