Другие ответы здесь верны, но могут оставить пароль в неизвестном состоянии.
ChangePassword
будет выдавать исключения, если пароль не соответствует требованиям, изложенным в Web.Config (минимальная длина и т. Д.). Но произойдет сбой только после вызова ResetPassword
, поэтому пароль не будет известен первоначальному пользователю или человеку, который пытался его изменить. Прежде чем сменить пароль, проверьте требования к сложности, чтобы избежать этого:
var user = Membership.GetUser(userName, false);
if ((newPassword.Length >= Membership.MinRequiredPasswordLength) &&
(newPassword.ToCharArray().Count(c => !Char.IsLetterOrDigit(c)) >=
Membership.MinRequiredNonAlphanumericCharacters) &&
((Membership.PasswordStrengthRegularExpression.Length == 0) ||
Regex.IsMatch(newPassword, Membership.PasswordStrengthRegularExpression))) {
user.ChangePassword(user.ResetPassword(), newPassword);
} else {
// Tell user new password isn't strong enough
}