ASP.NET MVC 데모와 함께 제공되는 표준 SqlMembershipProvider를 사용하고 있습니다.ASP.NET MVC에서 "비밀번호 찾기"를 어떻게 구현해야합니까?
내 사이트에 "비밀번호 찾기"링크를 구현하는 데 관심이 있습니다.
이 기능을 구현하는 올바른 방법은 무엇입니까? 임시 비밀번호로 비밀번호를 덮어 써서 등록 된 이메일로 이메일로 보내야합니까?
ASP.NET MVC 데모와 함께 제공되는 표준 SqlMembershipProvider를 사용하고 있습니다.ASP.NET MVC에서 "비밀번호 찾기"를 어떻게 구현해야합니까?
내 사이트에 "비밀번호 찾기"링크를 구현하는 데 관심이 있습니다.
이 기능을 구현하는 올바른 방법은 무엇입니까? 임시 비밀번호로 비밀번호를 덮어 써서 등록 된 이메일로 이메일로 보내야합니까?
당신을 위해 리셋을 자동으로됩니다 제공 :
http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.resetpassword.aspx
샘플은 단지 사용자가 이메일의 브라우저에 새 암호를 대신 반환하지만 구성 할 수 있습니다 비밀 질문/답변 사용 공급자.
이 샘플은 암호와 이메일을 얻을 수 그것을 :
http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.getpassword.aspx
나도 방법이 안전하다고 생각합니다. 사용자가 계정을 해킹하기 위해 질문/답변 및 전자 메일 암호를 알아야하기 때문에 단계별 전자 메일은 조금 안전합니다.
나는이 샘플들이 MVC를 사용하지 않는다는 것을 깨닫는다. 그러나 나는 당신이 갈 수 있다고 확신한다. : 응용 프로그램의 특성에 기반
는 비밀번호 분실에 대한 가장 좋은 방법은 사용자가 3 ~ 5 최대의 비밀/질문을 확인 할 수 있도록 허용하기 위해
URL을 추측하는 것이 불가능한 링크를 사용자에게 이메일로 보내는 것이 좋습니다 (예 : 임의의 Guid가 포함 된 경우). 사용자가 URL을 클릭하면 비밀번호를 재설정 할 수 있습니다. 하나 개의 사용에 대해서만합니다. 그것은 당신이 사용하고있는 멤버 자격 공급자의 유형을 따라
. 설정된 시간 후 을 만료해야하지만 여기 please visit the following link
은 자세한 내용에 대한 인증을위한 간단한 멤버 자격 공급자를 사용하는 것이 좋습니다 것입니다 몇 가지 코드
[HttpPost]
[AllowAnonymous]
public ActionResult ForgotPassword(ForgotPasswordModel model)
{
.
.
.
.
if (WebSecurity.UserExists(model.UserName))
{
var token = WebSecurity.GeneratePasswordResetToken(model.UserName, 60);
.
.
.
.
// send this token by email
}
else
{
ModelState.AddModelError("", "Could not find User");
}
}
return View(model);
}
[HttpPost]
public ActionResult ResetPassword(ResetPasswordModel model)
{
string token = Request.Params["token"];
if (!string.IsNullOrEmpty(token))
{
if (WebSecurity.ResetPassword(token, model.NewPassword))
{
// send email…….. or
return View();
}
}