2013-04-10 4 views
1

이전 비밀번호를 모른 채 mvc4 제공자를 사용하여 비밀번호를 설정하는 방법을 알고 싶습니까?Webmatrix 비밀번호 재설정

사용자가 전자 메일을 통해 보안 링크를받은 다음 링크를 클릭하고 내 응용 프로그램으로 이동 한 다음 새 암호 만 입력하면 보안 질문이 필요하지 않은 암호 분실 기능을 만들고 싶습니다.

mvc3과 함께 제공되는 멤버 자격 제공 업체에서이를 쉽게 수행 할 수있었습니다. 지금 mvc4와 함께 제공되는 간단한 멤버쉽 공급자를 사용하고 있으며 문제가 발생합니다.

지정 방법은 지원되지 않습니다 : 그것은 현재 오류가있는 GETPASSWORD를 호출 위의 라인()에 오류가 있습니다

MembershipUser user = Membership.GetUser(cust.Email); 
       String pass = user.GetPassword(); 

       Boolean success = WebSecurity.ChangePassword(cust.Email, pass, model.Password); 

:로

코드는 지금까지 간단 보인다. 난 당신이 mvc3의 제공에 사용하는 속성을 추가하려고보다도

<system.web> 
     <roleManager enabled="true" defaultProvider="SimpleRoleProvider"> 
      <providers> 
       <clear/> 
       <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/> 
      </providers> 
     </roleManager> 
     <membership defaultProvider="SimpleMembershipProvider"> 
      <providers> 
       <clear/> 
       <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" 
     enablePasswordRetrieval="true" enablePasswordReset="true" passwordFormat="Encrypted" requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" /> 
      </providers> 
     </membership> 

하지만이 될 것 같지 않습니다

나는 여기에서 web.config의 관련 부분을 보여 드리겠습니다 여기에 적용됩니다.

답변

3

WebSecurity.GeneratePasswordResetToken은 고유 한 문자열을 생성하여 반환합니다.

WebSecurity.ResetPassword은 해당 토큰을 사용하여 암호를 변경합니다.

사용자에게 토큰을 매개 변수로 사용하여 작업에 대한 링크를 제공 한 다음 암호를 변경하기위한 간단한 양식을 제공하십시오.

+0

정말 기쁘 네요. 나는 이걸 보지 못해서 바보가된다. – John

+0

John이 말한 것 : 나는 ConfirmAccount와 ResetPassword 메서드를 혼동하고있었습니다 ... (token, newPassword) parms를 사용할 수있어서 좋았습니다. 다른 것에 대해서는 신경 쓸 필요가 없습니다. –

+0

비밀 질문 필드를 추가하는 것을 잊지 마십시오. 게다가. –