0

SqlMembership 공급자를 사용하여 암호를 재설정 한 후 새 암호로 로그인 할 수 없습니다. 다음은 dbo.aspnet_Membership 테이블의 암호를 다시 설정하는 데 사용되는 코드 줄입니다. 비밀번호가 암호화되어 있습니다. 암호를 재설정 할 때마다 새로운 암호화 된 값이 테이블에 저장됩니다. 하지만 로그인 할 수 없습니다. SqlMembership Provider를 사용하여 재설정 한 후에 새 암호로 로그인 할 수 없습니다.

내 webconfig 설정 :

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15"> 
<providers> 
<clear /> 
<add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="xxxx" applicationName="xxxx" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" /> 
    </providers> 
</membership> 

C# 코드 :

Membership user= Membership.GetUser(txtUser.Text); 
user.ResetPassword(txtNewPassword.Text); 

사람이 아직도 새 암호로 로그인 할 수없는 전 이걸 좀 도와 수 있습니까?

답변

1

ResetPassword은 실제로 새 사용자 암호 설정에 사용해야하는 기능이 아닙니다. 참조 :

http://msdn.microsoft.com/en-us/library/d94bdzz2(v=vs.110).aspx

ResetPassword 새로운 임의의 암호 (A 비밀번호 찾기 링크를 상상)를 생성하기위한 것입니다. 사용중인 생성자 (문자열)는 암호가 아니며 가능한 경우 비밀 질문에 답변하기위한 것입니다.

실제로 사용해야하는 방법은 ChangePassword입니다. 참조 :

http://msdn.microsoft.com/en-us/library/system.web.security.membershipuser.changepassword(v=vs.110).aspx

당신은 그 비슷한에 소비하는 것 : 문제는 그때 solution.?How 될 것인가 암호를 해달라고 여기에 당신의 reply.bUt에 대한

Membership user= Membership.GetUser(txtUser.Text); 
user.ChangePassword(oldPasswordString, txtNewPassword.Text); 
+0

감사를 할 수 나는 이전 값을 모른 채 암호를 변경하십시오. 보안 질문이 aspnet_Membership 테이블에 없어도 null 값입니다. –

+0

글쎄, ResetPassword 메소드 (새롭게 설정된 패스워드 문자열을 반환)를 체인화 한 다음 ChangePassword, 이전 패스워드의 첫번째 인수는 리셋 값의 리턴 값으로 전달할 수있다. 팔! – Kritner

+0

오오. 좋습니다. 효과가있었습니다. –