2012-06-22 19 views
8

मैं एमवीसी 4 आरसी डिफ़ॉल्ट टेम्पलेट का उपयोग कर लॉगिन सक्षम करने की कोशिश कर रहा हूं। मैंने इसे एमवीसी 3, Aspnet_regsql.exe -> SQL सर्वर जैसा ही किया था। तब मैंने SQL सर्वर को कनेक्शन स्ट्रिंग पॉइंट बनाया। AccountController मेंएमवीसी 4 आरसी - Aspnet_regsql.exe

Server Error in '/' Application. 

Invalid column name 'ApplicationId'. 
Invalid column name 'UserName'. 
Invalid column name 'ApplicationId'. 
Invalid column name 'UserId'. 
Invalid column name 'UserName'. 
Invalid column name 'IsAnonymous'. 
Invalid column name 'LastActivityDate'. 

त्रुटि::

जब मैं एक नया उपयोगकर्ता रजिस्टर करने की कोशिश मैं इस मिल

   Line 85: // Attempt to register the user 
       Line 86: MembershipCreateStatus createStatus; 
Error here -> Line 87: Membership.CreateUser(model.UserName, model.Password, model.Email, passwordQuestion: null, passwordAnswer: null, isApproved: true, providerUserKey: null, status: out createStatus); 
       Line 88: 
       Line 89: if (createStatus == MembershipCreateStatus.Success) 

मैं अब तक इस त्रुटि है, लेकिन कोई किस्मत गूगल की कोशिश कर रहा हूँ। क्या एमवीसी 4 में ऐसा कुछ और तरीका हो सकता है?

+0

क्या आपको कोई समाधान मिला? यदि मैं एसक्यूएल प्रोफाइलर चलाता हूं, तो 'DefaultMembershipProvider' द्वारा जेनरेट किए गए SQL कथन 'aspnet_regsql' ('aspnet_Applications' के बजाय' अनुप्रयोग 'और' aspnet_Users' के बजाय' उपयोगकर्ता') के बजाय अलग-अलग तालिका नामों का उपयोग करते हैं। एक समाधान सदस्यता प्रदाता के अनुरूप या एमवीसी के लिए कस्टम सदस्यता प्रदाता लिखने के लिए टेबल का नाम बदलना है। –

उत्तर

10

मुझे एक ही त्रुटि मिली क्योंकि मैं aspnet_regsql.exe संस्करण 2.x से सदस्यता तालिका का उपयोग कर रहा था। मैं संस्करण 2.x फ़ोल्डर में aspnet_regsql.exe निष्पादन योग्य भाग गया और तालिकाओं को अनइंस्टॉल किया। फिर नए सार्वभौमिक प्रदाताओं के साथ आपको उपर्युक्त निष्पादन योग्य का उपयोग करने की आवश्यकता नहीं है, जब आप पहली बार कनेक्ट होते हैं तो टेबल बनाए जाते हैं।

यह आलेख पुराने एस्पनेट_Memembership के बीच अंतर के बारे में अधिक जानकारी देता है जो सार्वभौमिक प्रदाता बनाम है।

Stronger Password Hasing Net

लेख से प्रमुख बिंदु:

सबसे पहले, वहाँ कोई और अधिकaspnet_regsql, तुम बस सुनिश्चित करें कि आपके कनेक्शन स्ट्रिंग सेट किया गया है और खाता है डीबीओ अधिकार (नहीं है चिंता करें, इसे इस तरह से नहीं रहना है) फिर ऐप को चलाएं और कोई भी क्रिया करने का प्रयास करें जो सदस्यता प्रदाता को डीबी को मारने का कारण बनता है (यानी लॉग ऑन - इससे कोई फर्क नहीं पड़ता कि खाता नहीं है)।

यह सब कुछ है।

+0

"सबसे पहले, aspnet_regsql नहीं है, आप बस सुनिश्चित करें कि आपकी कनेक्शन स्ट्रिंग सेट है ..." और सब कुछ पूरी तरह से काम किया :) कोई और regsql उपकरण नहीं! बहुत बहुत धन्यवाद :) – judehall

+0

समस्या यह है कि मेरे पास इस समस्या के साथ है कि new System.Web.Providers ढांचे के लिए कोई aspnet_regsql.exe समतुल्य नहीं है, यह है कि मैं डीबी स्कीमा नहीं बना सकता और फिर व्यवस्थापक उपयोगकर्ताओं और भूमिकाओं के साथ सदस्यता को बीज कर सकता हूं सार्वजनिक उपयोगकर्ताओं को पंजीकरण करने की इजाजत देने के लिए प्राथमिक। मैंने एमवीसी इंस्टालर (NuGet और github) बनाया और यह प्रशासकों के लिए सदस्यता प्रणाली स्थापित करने के लिए aspnet_regsql.exe का उपयोग करता है। यह मुझे नए सिस्टम के लिए अपना घटक अपडेट करने की अनुमति नहीं देता है। यह परेशान करने वाला है। – Kahanu

संबंधित मुद्दे