2012-10-17 2 views
0

현재 MVC 3 응용 프로그램이있어 사용자가 암호를 잊었을 때 보안 응답이 정확해야합니다.MVC 3 회원 서비스 resetpass 문제

그러나 시스템 관리자가 보안 응답을 알지 못해도 모든 사용자의 암호를 재설정 할 수 있기를 바랍니다.

가능한 해결책은 무엇입니까?

+2

현재 가지고있는 코드를 표시 할 수 있습니까? 관리자 페이지와 관련하여 어떤 설정을 했습니까? 자세한 내용은 도움이 될 것입니다. – danseery

답변

0

두 가지 다른 공급자를 사용하여이 솔루션을 완성했습니다.

<membership> 
    <providers> 
    <clear/> 
    <add name="ProviderRequiredAnswer" ....... 
     enablePasswordReset="true" requiresQuestionAndAnswer="true" ...... /> 
    <add name="ProviderNoRequiredAnswer" ...... 
     enablePasswordReset="true" requiresQuestionAndAnswer="false" ...... /> 

    </providers> 
</membership> 

일반 사용자가 비밀번호를 잊어 재설정 할 필요가, 나에 의해 처음 공급자를 사용하여 사용자를 얻을 것이다 : 두 업체는 응용 프로그램의 Web.Config 파일에 추가 된

MembershipUser 사용자 = Membership.Providers [ "ProviderRequiredAnswer"] .GetUser (model.userToReset, false);

문자열 autoGenPass = userToReset.ResetPassword (model.PasswordAnswer);

bool resetPasswordSucceeded = userToReset.ChangePassword (autoGenPass, model.NewPassword);

MembershipUser 사용자 = 회원 : 보안 응답이없는 시스템 관리자는 사용자의 암호를 재설정 할 필요가있는 경우 반면에

는 내가하여 두 번째 공급자를 사용하여 사용자를 얻을 것이다. 공급자 [ " ProviderNoRequiredAnswer"] .GetUser (model.userToReset, false);

문자열 autoGenPass = userToReset.ResetPassword();

bool resetPasswordSucceeded = userToReset.ChangePassword (autoGenPass, model.NewPassword);

+0

그것은 흥미로운 해결책입니다. 나는 당신이 그런 여러 공급자를 사용할 수 있다는 것을 몰랐습니다. –