반응형
현재 암호를 모르는 경우 asp.net 멤버십 제공자를 사용하여 해시 암호를 변경하는 방법은 무엇입니까?
문제야, 방법이 없어요.
bool ChangePassword(string newPassword);
현재 암호를 알아야 합니다(해시되어 잊혀진 것 같습니다).
이것은 제가 너무 많은 시간을 낭비한 쉬운 것입니다.이 게시물이 나만큼 이마를 세게 때리는 고통을 다른 사람이 덜어주기를 바랍니다.
해결 방법은 비밀번호를 임의로 재설정하고 변경 방법에 전달합니다.
MembershipUser u = Membership.GetUser();
u.ChangePassword(u.ResetPassword(), "myAwesomePassword");
에서 QuestionAndAnswer="true"가 필요한 경우 암호를 변경할 수 없습니다.
이 일은 내가 해결해야 할 일입니다.
web.config에서 두 개의 멤버쉽 프로바이더를 만들었습니다.
aspNetSqlMembershipProviderReset 프로바이더는 기본 프로바이더로 사용되지만 requiredQuestionAndAnswer= false를 사용하므로 암호 재설정을 위해 사용하고 있습니다.
사용자의 비밀번호를 재설정하기 위해 다음 코드를 작성하였습니다.
public bool ResetUserPassword(StringpsUserName, StringpsNewPassword) { 필수 질문 응답이 false로 설정된 두 번째 멤버쉽 제공자를 사용하여 { // 멤버십 사용자 세부 정보 가져오기를 시도하십시오.
MembershipUser currentUser = Membership.Providers["AspNetSqlMembershipProviderReset"].GetUser(psUserName,false);
//Reset the user password.
String vsResetPassword = currentUser.ResetPassword();
//Change the User password with the required password
currentUser.ChangePassword(vsResetPassword, psNewPassword);
//Changed the comments to to force the user to change the password on next login attempt
currentUser.Comment = "CHANGEPASS";
//Check if the user is locked out and if yes unlock the user
if (currentUser.IsLockedOut == true)
{
currentUser.UnlockUser();
}
Membership.Providers["AspNetSqlMembershipProviderReset"].UpdateUser(currentUser); return true;
}
catch (Exception ex)
{
throw ex;
return false;
}
}
언급URL : https://stackoverflow.com/questions/287320/how-do-you-change-a-hashed-password-using-asp-net-membership-provider-if-you-don
반응형
'sourcecode' 카테고리의 다른 글
jquery - 성공 시 ajax 결과를 사용한 반환 값 (0) | 2023.09.26 |
---|---|
MySQL - varchar 열에서 숫자 값만 선택 (0) | 2023.09.26 |
빈 테이블에서 쿼리 실행 속도가 느립니다.(많은 양의 삽입물을 삭제한 후 (0) | 2023.09.26 |
Wocommerce 백엔드 제품 편집 페이지의 제품 유형 옵션에 확인란 추가 (0) | 2023.09.26 |
워드프레스 SQL은 X 제품에 대한 사용자의 이름과 성을 쿼리합니까? (0) | 2023.09.26 |