ASP.NET 멤버십 보안 질문 및 사용자 정의 비밀번호 복구에 대한 답변을 사용하지 않는 방법은 무엇입니까?
-
06-09-2019 - |
문제
ASP.NET 멤버십 제공 업체가 제공하는 보안 질문 및 답변 기능을 원하지 않지만 분실/잊어 버린 비밀번호 페이지를 활성화하고 싶습니다.
이 페이지는 사용자가 이메일 주소를 입력하는 곳이며 사용자가 등록 된 이메일 주소로 전송 된 링크를 통해 비밀번호를 재설정하도록 등록 된 경우 해당 주소로 전송됩니다.
해당 요청을 추적하기위한 사용자 정의 테이블, 요청에 할당 된 임의의 키 및 요청의 만료 날짜를 추적했습니다. 그러나 실제로 비밀번호를 재설정하기 위해 코드를 작성할 때, 보안 Q & A (내가 가지고 있지 않은)를 사용할 필요없이 ResetPassword (이메일, NewPassword)와 같은 방법이없는 것 같습니다.
내장 된 멤버십 기능을 통해 간단히 사용자의 비밀번호를 재설정하는 방법이 있습니까?
그렇지 않다면 어떻게해야합니까?
도움을 주셔서 감사합니다. -니산
해결책
내가 한 일은 다음과 같습니다
public string ResetPassword(string email)
{
var m_userName = Membership.GetUserNameByEmail(email);
var m_user = Membership.GetUser(m_userName);
return m_user.ResetPassword();
}
그런 다음이 값을 사용하여 암호를 변경하는 새로운 방법을 추가했습니다.
public bool ChangeLostPassword(string email, string newPassword)
{
var resetPassword = ResetPassword(email);
var currentUser = Membership.GetUser(Membership.GetUserNameByEmail(email), true);
return currentUser.ChangePassword(resetPassword, newPassword);
}
다른 팁
이 옵션을 web.config에서 변경하지 않는 이유는 무엇입니까?
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
안에
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" ...
..........
제휴하지 않습니다 StackOverflow