2010-07-06 6 views
1

SQL Server 2005 db에 대한 비밀번호 복구를 위해 보안 질문 및 답변이 활성화 된 asp.net의 기본 제공 멤버 자격 공급자를 사용하고 있습니다. 일부 사용자의 경우 이는 정상적으로 작동하며 비밀번호를받을 수 있습니다. 다른 사람들에게는 두 그룹을 구분하는 것이 명확하지 않으므로 보안 답변이 제대로 처리되지 않습니다. 대답이 맞는지 틀린 지 상관없이 페이지는 요청을 확인하거나 거부하지 않고 다시로드됩니다.asp.net 회원이 로그인 미리 알림을 보내지 않음

이벤트의 경우 VerifyingAnswer가 트리거되지만 AnswerLookupError (대답이 잘못된 경우) 또는 SendingMail (응답이 올바른 경우)을 트리거하지 않습니다. 한 인스턴스 동안 SQL 추적을 실행하고 aspnet_Membership_GetUserByName 저장 프로 시저가 호출되었지만 이후에 아무 것도 호출되지 않습니다. aspnet_Membership_GetPassword는 보안 답변을 매개 변수로 전달하지만 안전하지는 않습니다.

+0

업데이트를 답으로 게시하고 동의하십시오. 이렇게하면 SO 워크 플로우가 완료되고 동일한 문제를 가진 다른 사람들이 귀하의 해결 방법을 쉽게 식별 할 수 있습니다. –

답변

0

업데이트 : 문제를 해결할 수있었습니다. 제 경우에는 이벤트를 포착하고 다른 소스 (즉, 회원 데이터베이스가 아닌)의 전자 메일 주소를 사용하여 요청하는 사용자에게 연결합니다. 문제는 해당 asp.net 회원 레코드에 전자 메일 주소가 없으면 PasswordRecovery 컨트롤이 질식합니다. 비록 거기에 의존하지는 않지만.

보안 문제에 대한 대답을 사용자에게 묻는 대신에 사용자 이름을 입력 한 직후에 문제를 유발할 것으로 예상했기 때문에 이전에이 사실을 깨닫지 못한 이유가 있다고 생각합니다. 나는 모든 회원 기록에 이메일 주소를 붙임으로써이 문제를 해결했다.

관련 문제