2008-11-13 6 views
57

समस्या है, वहाँ कोई विधि है:यदि आप वर्तमान पासवर्ड नहीं जानते हैं तो आप एएसपीनेट सदस्यता प्रदाता का उपयोग करके एक हैश पासवर्ड कैसे बदलते हैं?

bool ChangePassword(string newPassword); 

आप वर्तमान पासवर्ड (जो शायद टुकड़ों में बांटा और भूल जाता है) पता करने के लिए की है।

+0

आपको अपना प्रश्न अलग करना चाहिए और एक उत्तर जोड़ना चाहिए। –

+0

@mcqwerty, अब हमने आपका जवाब अलग कर दिया है, आपको अपने उत्तर को "स्वीकार" करना चाहिए – harriyott

+0

अच्छी नौकरी, मैंने इसे चेंजपासवर्ड नियंत्रण के हमारे संस्करण (उपयोगकर्ताओं के लिए व्यवस्थापक बदलना पासवर्ड) के साथ किया;) – CheGueVerra

उत्तर

126

यह एक आसान है जिसे मैंने बहुत अधिक समय बर्बाद कर दिया। उम्मीद है कि यह पोस्ट किसी और को अपने माथे को इतनी मेहनत करने के दर्द को बचाता है जैसा मैंने किया था।

समाधान, पासवर्ड को यादृच्छिक रूप से रीसेट करें और उसे परिवर्तन विधि में पास करें।

MembershipUser u = Membership.GetUser(); 
u.ChangePassword(u.ResetPassword(), "myAwesomePassword"); 
+2

अरे, चलो। अपने स्वयं के प्रश्न का उत्तर देने के लिए मत छोड़ो। एफएक्यू इस बात को प्रोत्साहित करता है। Http://stackoverflow.com/questions/18557/how-does-stackoverflow-work-the-unofficial-faq#119658 – DOK

+0

नीचे वोट (मुझे नहीं!) उत्तर देने से पहले यहां था। पहले यह कहा गया था कि जवाब सवाल में था। मैं नीचे मतदान करने वाले लोगों पर बहुत उत्सुक नहीं हूं जिन्होंने केवल एसओ में शामिल हो गए हैं - मदद करने के लिए संपादित करना बहुत बेहतर है। – harriyott

+0

हाँ और वह भी बहुत बैज हो जाता है !! – CheGueVerra

2

आप पासवर्ड बदलने के लिए सक्षम नहीं हैं, तो requiresQuestionAndAnswer = "true"

मैं web.config में इस

निर्मित दो सदस्यता प्रदाताओं के लिए चारों ओर काम मिल गया

मैं पासवर्ड रीसेट करने के लिए AspNetSqlMembershipProviderReset प्रदाता का उपयोग कर रहा हूं क्योंकि इसकी आवश्यकता है QuestionAndAnswer = false जहां AspNetSqlMembershipProvider डिफ़ॉल्ट प्रदाता का उपयोग किया जाता है।

मैंने उपयोगकर्ता के लिए पासवर्ड रीसेट करने के लिए निम्न कोड लिखा था।

सार्वजनिक bool ResetUserPassword (स्ट्रिंग psUserName, स्ट्रिंग psNewPassword) { कोशिश { // आवश्यक प्रश्न जवाब गलत पर सेट के साथ secound सदस्यता प्रदाता का उपयोग कर सदस्यता उपयोगकर्ता विवरण प्राप्त करें।

 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; 
    } 
} 
संबंधित मुद्दे