public override string ResetPassword(string username, string answer) { if (!EnablePasswordReset) { throw new NotSupportedException("Password reset is not enabled."); } if (answer == null && RequiresQuestionAndAnswer) { throw new ProviderException("Password answer required for password reset."); } string newPassword = Membership.GeneratePassword(NEWPASSWORDLENGTH, MinRequiredNonAlphanumericCharacters); ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true); OnValidatingPassword(args); if (args.Cancel) { if (args.FailureInformation != null) { throw args.FailureInformation; } throw new MembershipPasswordException("Reset password canceled due to password validation failure."); } using (WebUsersController swuc = new WebUsersController()) { WebUser user = swuc.GetWhere(u => u.Email == username).FirstOrDefault(); try { user.Password = EncodePassword(newPassword); swuc.Update(user); return newPassword; } catch(Exception ex) { throw new MembershipPasswordException("User not found, or user is locked out. Password not Reset."); } } }
public override bool ChangePassword(string username, string oldPassword, string newPassword) { // Check if user is authenticated if (!ValidateUser(username, oldPassword)) { return false; } // Notify that password is going to change ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true); OnValidatingPassword(args); if (args.Cancel) { if (args.FailureInformation != null) { throw args.FailureInformation; } throw new MembershipPasswordException("Change password canceled due to new password validation failure."); } using (WebUsersController swuc = new WebUsersController()) { WebUser user = swuc.GetWhere(u => u.Email == username).FirstOrDefault(); user.Password = EncodePassword(newPassword); try { swuc.Update(user); return true; } catch(Exception ex) { return false; } } }