0

나는 완성에 가까운 응용 프로그램을 구축하고 있습니다. 등록 할 때 새로운 사용자에게 확인 토큰을 전자 메일로 보내기위한 보안 및 기능의 최종 계층을 추가하고 있습니다. 초기 등록 확인 토큰을 얻는 것은 쉽습니다. 토큰이보기로 전달되고 전자 메일이 발송됩니다. 그러나이 토큰을 재전송해야하는 두 가지 시나리오가 있습니다.SimpleMembership - WebSecurity GetConfirmationToken Problems

  • 사용자가 '등록 단계 2'라는보기로 리디렉션되는 경우.
  • 사용자가 계정을 확인하기 전에 로그인을 시도 할 때.

첫 번째 시나리오에는 페이지에 토큰이 쉽게 포함될 수있는 버튼이있어 간단한 작업입니다. 그러나 로그인 페이지에는이 기능이 없으며 서버는 사용자의 전자 메일 주소 만 알 수 있습니다. DRY 원칙을 지키면서 나는이 방법을 하나의 방법으로 합병했다. 그러나 사용자가 등록한 이메일 주소를 얻을 수있는 동안 확인 토큰을 얻는 WebSecurity 또는 Membership 호출을 찾을 수 없다.

아래 표의 Expression을 사용하여 멤버십 테이블에서 요청하려고 시도했지만 LastPasswordFailureDate이 (이 예상 됨) null이라는 예외가 발생했습니다. 난 아무데도 그것을 찾을 수

Expression<Func<MembershipModel, bool>> query = q => q.UserId == userId; 

나는 케빈 융한 즈 (아래)과 유사한 블로그를 검토 한 결과, 그러나 WebSecurity.GetConfirmationToken 더 이상 지원하지 않는 것 같습니다.

Retrieving Confirmation Token

난에 StackOverflow에 대한 질문에 나는 방대한 양의를 썼다 나는이 저택에서 구현하지 않으려는 정직를 가리키는 다음 링크를 보았다 EntityFramework 저장소 패턴을 통합하여이 모든 것을 수행합니다. 사람이 응용 프로그램 자체 내에서 SQL을 작성하지 않고 확인 토큰을 얻기에 대한 권장 사항이있는 경우

Resend Confirmation Email with WebSecurity

궁금하네요.

답변

0

오늘 아침에 조금 더 생각하면서 마침내 나는 LastPasswordFailureDate이 언급 된 Exception을 반환하는 이유를 깨달았습니다. 본질적으로 나는 바보라고 생각하고 nullable 참조를 내 모델 내의 DateTime 필드에 추가하는 것을 잊어 버렸습니다. 몇 시간 동안이 문제를 해결할 수는 없지만 두 가지 경우 모두이 답변/질문을 업데이트 할 것입니다.

관련 문제