how to implement password reset/change with SimpleMembership in MVC 4 here पर एक विस्तृत लेख है। इसमें स्रोत कोड भी शामिल है जिसे आप डाउनलोड कर सकते हैं।
यह उदाहरण पासवर्ड रीसेट के लिए उपयोगकर्ता को यूआरएल भेजने के लिए ईमेल का उपयोग करता है। यह उपयोगकर्ता को वेबसाइट पर पुराना पासवर्ड और नया पासवर्ड दर्ज करने से कहीं अधिक सुरक्षित है क्योंकि यह उपयोगकर्ता का एक और सत्यापन है। यह उस परिदृश्य को कम करता है जहां किसी को उपयोगकर्ता पासवर्ड धारण हो जाता है और पासवर्ड बदलकर उन्हें बाहर निकाल देता है। यह उपयोगकर्ता को उस मामले में पासवर्ड रीसेट करने की अनुमति देता है जहां वे पासवर्ड भूल गए हैं।
लिंक के साथ ईमेल भेजने के लिए कोड इस तरह कुछ दिखाई देगा।
[AllowAnonymous]
[HttpPost]
public ActionResult ResetPassword(ResetPasswordModel model)
{
string emailAddress = WebSecurity.GetEmail(model.UserName);
if (!string.IsNullOrEmpty(emailAddress))
{
string confirmationToken =
WebSecurity.GeneratePasswordResetToken(model.UserName);
dynamic email = new Email("ChngPasswordEmail");
email.To = emailAddress;
email.UserName = model.UserName;
email.ConfirmationToken = confirmationToken;
email.Send();
return RedirectToAction("ResetPwStepTwo");
}
return RedirectToAction("InvalidUserName");
}
यह एक जाल एपीआई कि आईडी है कि में पारित हो जाता है के रूप में टोकन स्वीकार करता है के लिए एक लिंक है कि एक ई-मेल बनाता है। वे लिंक पर क्लिक करते यह इस पद्धति पूरी करता है।
[AllowAnonymous]
public ActionResult ResetPasswordConfirmation(string Id)
{
ResetPasswordConfirmModel model = new ResetPasswordConfirmModel() { Token = Id };
return View(model);
}
यह क्रिया क्वेरी स्ट्रिंग से टोकन हो जाता है और ResetPasswordConfirmationModel उस दृश्य जो उपयोगकर्ता नया पासवर्ड दर्ज करने की अनुमति देता करने के लिए पारित हो जाता है में कहते हैं। नए पासवर्ड को यह सुनिश्चित करने के लिए दो बार दर्ज किया जाता है कि उन्होंने इसे सही तरीके से दर्ज किया है, जो पृष्ठ पर मान्य है। जब वे यह जानकारी जमा करते हैं तो उन्हें इस क्रिया के POST संस्करण में ले जाया जाता है जो वास्तव में पासवर्ड रीसेट करता है।
[AllowAnonymous]
[HttpPost]
public ActionResult ResetPasswordConfirmation(ResetPasswordConfirmModel model)
{
if (WebSecurity.ResetPassword(model.Token, model.NewPassword))
{
return RedirectToAction("PasswordResetSuccess");
}
return RedirectToAction("PasswordResetFailure");
}
स्रोत
2013-12-12 15:32:20
क्या आप पासवर्ड रीसेट फ़ंक्शन की तलाश नहीं कर रहे हैं? यदि उपयोगकर्ता को मूल पासवर्ड नहीं पता है, तो उन्होंने लॉग ऑन कैसे किया? और अगर वे लॉग ऑन नहीं हैं, तो वे किस उपयोगकर्ता का पासवर्ड बदल रहे हैं? – ProfK