2014-06-06 4 views
0

전에 나는, 내가 잘못 이전 암호를 입력하면 ActiveDirectoryMembershipProvider.ChangePassword검증 오래된 비밀번호 변경 비밀번호

MembershipUser currentUser = Membership.GetUser(User.Identity.Name, userIsOnline: true); 
changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword); 

를 사용 LDAP에 암호 내 계정을 변경하려면 ChangePassword 반환 거짓을 시도했다. 제 질문은 : ChangePassword의 잘못된 결과는 이전 암호가 잘못되었음을 의미합니까? 그렇지 않은 경우 잘못된 비밀번호를 입력하면 어떻게 감지됩니까?

감사합니다.

답변

1

MembershipUser.ChangePassword() 메서드는 업데이트가 성공적으로 수행되면 true를 반환합니다. oldpassword가 잘못되었거나없는 경우 어떤 정보도 제공하지 않습니다.

이 메서드는 하위 멤버 자격 공급자의 ChangePassword() 메서드를 호출하므로 멤버 자격 공급자가 새 암호가 일치하지 않는 암호의 크기에 제한이있는 경우 예외를 throw 할 수도 있습니다.

  • NEWPASSWORD는 MinRequiredPasswordLength 재산

  • NEWPASSWORD이 MinRequiredNonAlphanumericCharacters 속성에 지정된 알파벳이 아닌 문자의 수보다 적은 수의 포함에 지정된 최소 암호 크기보다 작은 경우

    는 경우 ArgumentException을 throw합니다

  • newPassword는 정의 된 정규식에 의한 유효성 검사에 실패합니다. n PasswordStrengthRegularExpression 속성

    • NEWPASSWORD이 Active Directory 서버에 의해 정의 된 복잡성 요구 사항을 충족하지 않는 경우

    는 MembershipPasswordException를 발생시킵니다.

당신이 MembershipProvider.ValidateUser() 방법을 사용할 수 있습니다 이전 암호를 확인하십시오.

+0

네,'validateUser' 만 내 이전 암호를 확인할 수있는 방법이라고 생각합니다. 감사! –