विशुद्ध रूप से एक संदर्भ बिंदु के रूप में, ASP.NET MVC 4 वेब एप्लिकेशन प्रोजेक्ट (यानी फ़ाइल> नई परियोजना के माध्यम से) का एक नया इंटरनेट एप्लिकेशन टेम्पलेट बनाना एक अच्छा विचार हो सकता है।
यदि आप AccountController
को देखते हैं , जैसा कि @zms6445 कहता है, इसे InitializeSimpleMembership
से सजाया गया है विशेषता। आप इस विशेषता के कार्यान्वयन को रूट निर्देशिका में फ़िल्टर फ़ोल्डर में InitializeSimpleMembershipAttribute.cs फ़ाइल में पा सकते हैं।
यहां, यह पहेली का गायब हिस्सा है - आपको अपने मौजूदा डेटाबेस को जोड़ने की आवश्यकता है ताकि इसका उपयोग SimpleMembershipProvider
द्वारा किया जा सके। . यह वह कोड है जिसकी आपको आवश्यकता है:
private class SimpleMembershipInitializer
{
public SimpleMembershipInitializer()
{
try
{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("CONNECTION_STRING_NAME", "USER_TABLE", "USER_ID_FIELD", "USER_NAME_FIELD", autoCreateTables: true);
}
}
catch (Exception ex)
{
throw new InvalidOperationException("Something is wrong", ex);
}
}
}
ध्यान देने योग्य कुछ बातें:
-
CONNECTION_STRING_NAME
आपके web.config ConnectionStrings में एक प्रविष्टि है - आप यहां मॉडल कनेक्शन स्ट्रिंग का उपयोग नहीं कर सकते -SimpleMembershipProvider
उस प्रारूप को नहीं पहचानता! आपको एकSystem.Data.SqlClient
निर्दिष्ट करने की आवश्यकता है कनेक्शन स्ट्रिंग, उदा।<नाम जोड़ें ="CONNECTION_STRING_NAME" कनेक्शनस्ट्रिंग ="डेटा स्रोत =सर्वर; प्रारंभिक कैटलॉग =डेटाबेस; उपयोगकर्ता आईडी =उपयोगकर्ता; पासवर्ड =पासवर्ड;" प्रदातानाम ="System.Data.SqlClient" />
-
USER_TABLE
अतिरिक्त उपयोगकर्ता जानकारी रखने के लिए आपके डेटाबेस में तालिका है, जैसे पहला नाम, उपनाम इत्यादि। यह USER_ID_FIELD के माध्यम से स्वत:जेनरेट की गई तालिकाओं से जुड़ा हुआ है। -
USER_ID_FIELD
आमतौर पर आपकी उपयोगकर्ता तालिका की प्राथमिक कुंजी होती है। यहint
. प्रकार का होना चाहिए । -
USER_ID_NAME
उपयोगकर्ता के लिए एक अनूठा नाम है, जो एक ईमेल पता हो सकता है। -
autoCreateTables
true
. पर सेट है यह सुनिश्चित करने के लिए कि SimpleMembership के काम करने के लिए आवश्यक तालिकाएँ बनाई गई हैं यदि वे पहले से मौजूद नहीं हैं।
बेशक, यह कोड केवल तभी सक्रिय होता है जब आप AccountController
. के माध्यम से किसी पृष्ठ को हिट करते हैं , चूंकि इसे विशेषता द्वारा सजाया गया है। आप वहां एक ब्रेकपॉइंट लगा सकते हैं और इसे क्रिया में देख सकते हैं।
यह आपको आरंभ करना चाहिए - यदि आप अटक जाते हैं तो इंटरनेट एप्लिकेशन टेम्प्लेट एक बहुत अच्छा टेम्प्लेट है।
आशा है कि यह मदद करता है।