2010-11-21 2 views
1

asp.net 웹 사이트에서 사용자 비밀번호를 재설정하는 기능을 제공해야합니다.따라야 할 요구 사항을 염두에두고 암호를 변경하려면 어떻게해야합니까?

이 작업을 수행하려면 사용자가 등록한 이메일 주소를 제공해야하며 잊어 버린 비밀번호를 재설정해야합니다. 쉬운 방법입니다.

까다로운 부분은 사이트의 멤버십 모델 (표준 AspnetMembershipProviders를 사용하지 않음)을 고려하며 사이트에서 사용자를 처리하는 자체 시스템을 사용합니다.

있습니다 내가 제공 내가 따라야 된 요구 사항에 대한이 질문의 받침 : 점 (3)의 경우

1) User can enter email address to reset password 
2) the password that is sent to the email address provided 
3) the temporary password must be valid for no more than 24 hours 
4) the email will provide the link to allow them to enter the temporary password 
5) when they log in they must be prompted to reset to a permanent password 
6) the temporary password must be single use 

는 동료가 시간 제한을 자동화하기 위해 SQL 작업을 사용하여 제안하지만, 나는 그것이 어떻게 작동 할 것인지 또는 그것이 최선의 접근법인지 완전히 확신하지 못한다.

포인트 6에 대해 임시 로그인을 사용하여 로그인 할 때 트리거를 사용하여 다시 시도하면 전체 프로세스를 다시 거쳐야 할 것이라고 생각했습니다.

3과 6은 내가 아이디어를 제시하고자하는 부분입니다. 또한 대답을 설명 할 때 규정 된 방법을 사용하여 수행해야하는 이유를 설명 할 수있게되어 어떤 대답이 내 요구 사항에 가장 적합한 지 더 잘 판단 할 수있게됩니다.

답변

2
3) the temporary password must be valid for no more than 24 hours 

이것은 내가 수행 할 작업입니다. 사람이 암호를 재설정하도록 요청하면 시스템 생성 암호가 데이터베이스 테이블로 업데이트됩니다. 이 테이블은 각각 ​​LastModified 열과 IsSystemGeneratedPassword 열을 가지며 둘 다 각각 datetime 및 true로 설정됩니다. 다음, 사용자가 로그인하려고하면 IsSystemGeneratedPassword이 참이면 LastModified를 현재 날짜와 비교하고 경과 된 시간을 찾습니다. 제한을 초과하면 (귀하의 경우 24 시간) 로그인이 허용되지 않습니다. 사용자는 임시 암호가 만료되었음을 알리고 비밀번호 재설정 페이지로 다시 이동합니다.

6) the temporary password must be single use 

사용자가 위의 3 단계를 통해에 기록하고 IsSystemGeneratedPassword 사실이기 때문에, 사용자가 그들의 선택 중 하나를 변경 여기서 암호 페이지를 변경하기 위해 리디렉션해야 성공적으로 로그인 할 수 있습니다. 옵션이 없습니다. 사용자가 변경할 경우 IsSystemGeneratedPassword은 false로 설정됩니다.

이 방법은 값을 무효화하는 일괄 처리 작업이 필요하지 않습니다.

+0

감사합니다. - 배치를 작성하지 않고 구현할 수있는 간단한 방법. –

관련 문제