다음을 통해 공유


ActiveDirectoryMembershipProvider.ChangePasswordQuestionAndAnswer 메서드

정의

Active Directory 저장소에 있는 사용자의 암호 질문 및 대답을 업데이트합니다.

public:
 override bool ChangePasswordQuestionAndAnswer(System::String ^ username, System::String ^ password, System::String ^ newPasswordQuestion, System::String ^ newPasswordAnswer);
public override bool ChangePasswordQuestionAndAnswer (string username, string password, string newPasswordQuestion, string newPasswordAnswer);
override this.ChangePasswordQuestionAndAnswer : string * string * string * string -> bool
Public Overrides Function ChangePasswordQuestionAndAnswer (username As String, password As String, newPasswordQuestion As String, newPasswordAnswer As String) As Boolean

매개 변수

username
String

암호 질문 및 대답을 변경하려는 사용자입니다.

password
String

지정된 사용자의 암호입니다.

newPasswordQuestion
String

지정된 사용자의 새 암호 질문입니다.

newPasswordAnswer
String

지정된 사용자의 새 암호 대답입니다.

반환

업데이트에 성공했으면 true이고, 실패했으면 false입니다. 암호가 정확하지 않거나 계정이 잠겨 있거나 Active Directory 데이터 저장소에 사용자가 존재하지 않는 경우에도 false 값이 반환됩니다.

예외

관리자가 암호 질문 및 대답 필드를 Active Directory 스키마의 특성에 매핑하지 않은 경우

username이 비어 있거나 사용자 이름의 최대 길이(대개 256자)를 초과하는 경우

또는

username에 쉼표가 포함된 경우

또는

사용자 이름이 userPrincipalName 특성에 매핑되고 username 매개 변수에 백슬래시가 포함된 경우

또는

password이 빈 문자열입니다.

또는

password가 최대 암호 길이(대개 128자)를 초과하는 경우

또는

newPasswordQuestion이 비어 있고 RequiresQuestionAndAnswer 속성 값이 true인 경우

또는

newPasswordQuestion이 256자를 초과하는 경우

또는

대답이 암호화된 후 newPasswordAnswer가 128자를 초과하는 경우

username이(가) null인 경우

또는

passwordnull입니다.

또는

newPasswordQuestionnull이고 RequiresQuestionAndAnswer 속성이 true인 경우

또는

newPasswordAnswernull이고 RequiresQuestionAndAnswer 속성이 true인 경우

machineKey 요소(ASP.NET 설정 스키마) 구성 요소가 자동 생성된 컴퓨터 암호화 키를 나타내는 경우. machineKey 요소(ASP.NET 설정 스키마) 요소의 decryptionKey 특성을 명시적으로 설정하여 암호 대답을 ActiveDirectoryMembershipProvider와 함께 저장해야 합니다.

설명

메서드는 Active Directory 멤버 자격 저장소의 ActiveDirectoryMembershipUser 사용자에 대한 암호 질문과 답변을 업데이트하기 위해 클래스에서 호출됩니다.

암호 질문과 대답을 요구하면 사용자의 암호를 재설정할 때 추가 보안 계층이 제공됩니다. 사용자 이름을 만들 때 사용자는 나중에 잊어버린 암호를 재설정하는 데 사용할 수 있는 질문과 답변을 제공할 수 있습니다. 메서드는 ChangePasswordQuestionAndAnswer 멤버 자격 사용자에 대한 암호 질문과 대답을 새 값으로 업데이트합니다.

사용 하기 위해는 ChangePasswordQuestionAndAnswer 메서드, 애플리케이션의 구성 파일에서 이러한 추가 특성을 설정 해야 합니다.

  • requiresQuestionAndAnswertrue여야 합니다.

  • attributeMapPasswordQuestionattributeMapPasswordAnswer 는 Active Directory 스키마의 특성에 매핑되어야 합니다.

위의 조건이 충족되지 않으면 초기화 시 가 ProviderException throw됩니다.

인스턴스는 ActiveDirectoryMembershipProvider 및 매개 변수에 제공된 자격 증명을 사용하여 Active Directory 데이터 저장소에 usernamepassword 연결하여 사용자 이름/암호 조합의 유효성을 검사합니다. 질문 및 답변의 실제 업데이트는 공급자의 구성된 연결 자격 증명을 사용하여 수행됩니다.

잘못된 암호가 메서드에 ChangePasswordQuestionAndAnswer 제공된 경우 디렉터리 서버는 잘못된 암호 시도를 추적하는 카운터를 증가합니다. 이로 인해 메서드를 호출 UnlockUser 하거나 디렉터리에 지정된 잠긴 기간이 지나갈 때까지 잠금 상태가 지워질 때까지 사용자가 잠기고 로그온할 수 없습니다.

질문 및 답변에 대한 업데이트가 성공하고 속성이 EnablePasswordResettrue면 사용자의 잘못된 암호 응답 추적 카운터가 다시 설정됩니다.

암호 응답은 Active Directory 데이터 저장소에 EncryptPassword 저장되기 전에 메서드를 사용하여 암호화됩니다. 암호화 키 및 알고리즘은 machineKey 요소(ASP.NET 설정 스키마) 구성 요소에 의해 지정됩니다. machineKey 요소(ASP.NET 설정 스키마) 요소의 암호 해독 특성을 지정 ActiveDirectoryMembershipProvider 해야 합니다. 클래스는 자동 생성된 암호화 키를 지원하지 않습니다.

암호 질문의 최대 길이는 256자입니다. 암호 응답의 최대 길이는 128자입니다.

선행 및 후행 공백은 를 제외한 password모든 매개 변수 값에서 잘립니다.

공급자는 연결 문자열에 지정된 검색 지점에서 시작하여 사용자 이름에 대한 하위 트리 검색을 수행하여 업데이트할 사용자 인스턴스를 찾습니다. 연결 문자열에 ActiveDirectoryMembershipProvider 대한 자세한 내용은 클래스 항목을 참조하세요.

적용 대상

추가 정보