2009-08-22 6 views
14

मैं मानक SqlMembershipProvider का उपयोग कर रहा हूं जो एएसपी.नेट एमवीसी डेमो के साथ आता है।एएसपी.नेट एमवीसी में "अपना पासवर्ड भूल गए" को कैसे कार्यान्वित किया जाना चाहिए?

मुझे अपनी साइट पर "अपना पासवर्ड भूल गए" लिंक को लागू करने में रूचि है।

इस सुविधा को लागू करने का सही तरीका क्या है? क्या मुझे अस्थायी के साथ पासवर्ड ओवरराइट करना चाहिए और इसे अपने पंजीकृत ईमेल पर ईमेल करना चाहिए?

उत्तर

8

प्रदाता आप के लिए रीसेट करने के लिए स्वचालित रूप से होगा:

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

मुझे लगता है कि या तो दृष्टिकोण सुरक्षित है। यह ईमेल कितना सुरक्षित है क्योंकि उपयोगकर्ता को खाता हैक करने के लिए प्रश्न/उत्तर और ईमेल पासवर्ड जानना होगा।

मुझे एहसास है कि ये नमूने एमवीसी का उपयोग नहीं कर रहे हैं, लेकिन मुझे यकीन है कि यह आपको जाने के लिए पर्याप्त है। :)

10

आवेदन की प्रकृति के आधार पर, भूल गया पासवर्ड के लिए सर्वश्रेष्ठ अभ्यास निम्न क्रम

  1. में होना चाहिए उपयोगकर्ता 3 से 5 की एक अधिकतम के लिए गुप्त/प्रश्न सत्यापित करने के लिए अनुमति दें प्रयास
  2. सफल सत्यापन पर, यादृच्छिक जेनरेट किया गया पासवर्ड 24hrs की वैधता के साथ एक ई-मेल भेजें।
  3. ई-मेल में केवल पासवर्ड और उपयोगकर्ता नाम/पासवर्ड दोनों नहीं होना चाहिए।
  4. जब उपयोगकर्ता अस्थायी पासवर्ड के साथ लॉग इन करता है, तो उपयोगकर्ता को पर होम पेज पर जाने से पहले पर नया पासवर्ड बनाना होगा।
6

निश्चित रूप से यह उपयोगकर्ता यूआरएल (माना युक्त एक यादृच्छिक Guid अनुमान लगाना असंभव किसी प्रकार के साथ एक लिंक ईमेल करने के लिए बेहतर है। उपयोगकर्ता यूआरएल वे पासवर्ड रीसेट करने में सक्षम हैं क्लिक करता है। यूआरएल अच्छा होना चाहिए केवल एक ही उपयोग के लिए, और एक निर्धारित समय के बाद समाप्त हो जाना चाहिए।

5

यह निर्भर सदस्यता प्रदाता आप किस प्रकार का प्रयोग कर रहे हैं। लेकिन मैं और अधिक विस्तार के लिए प्रमाणीकरण के लिए सरल सदस्यता प्रदाता का उपयोग कर 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(); 
      } 
     } 
संबंधित मुद्दे