2009-04-27 11 views
10

दो टेबल हैं: aspnet_users और aspnet_membership। क्या कोई इस कारण से विस्तार कर सकता है कि वे इसके लिए एक टेबल का उपयोग क्यों नहीं करते?एएसपी.NET के डिफ़ॉल्ट सदस्यता प्रदाता में दो अलग-अलग तालिकाओं में संग्रहीत उपयोगकर्ता जानकारी क्यों है?

उत्तर

12

सदस्यता तालिका सदस्यता प्रदाता API इंटरफ़ेस से संबंधित जानकारी रखती है। उपयोगकर्ता तालिका उपयोगकर्ता नाम और उपयोगकर्ता आईडी स्टोर करती है, जिन्हें कई प्रदाताओं से संदर्भित किया जाता है।

  • उपयोगकर्ता
    • सदस्यता (MembershipProvider)
    • प्रोफाइल (ProfileProvider)
    • भूमिकाओं (RoleManager)
    • आदि

aspnetdb प्रणाली बहुत मॉड्यूलर है और प्रत्येक टुकड़ा सीयू हो सकता है विभिन्न प्रदाताओं के माध्यम से stomized। तालिकाओं को अलग करने की आवश्यकता है ताकि प्रत्येक इंटरफ़ेस को फिर से लिखा जा सके, पुनर्निर्देशित किया जा सके।

+1

मैं उम्मीद कर रहा था कि किसी सुराग के साथ किसी को झुकाएगा; ओ) – wcm

+0

धन्यवाद :) मॉड्यूलरिटी वास्तव में वास्तव में अच्छी है, मेरे पास एक प्रोजेक्ट है जो कस्टम सदस्यता प्रदाता और एक कस्टम रोलमैनेजर लागू करता है और यह बहुत आसान था। –

+0

अहम। कई प्रदाताओं में aspnet_Users तालिका का पुन: उपयोग किया जाता है। Aspnet_Membership तालिका वास्तव में केवल सदस्यता प्रदाता के उपयोग के लिए है जैसा कि मैंने पहले ही उल्लेख किया है। –

0

एएसपी.नेट (सदस्यता प्रदाता के अलावा) में कुछ अन्य प्रदाता उपयोगकर्ता-विशिष्ट जानकारी भी संग्रहीत करते हैं। जैसे प्रोफ़ाइल।

इस बारे में अधिक जानकारी:

भेज दिया ASP.NET प्रदाताओं की दुकान के कई/एक उपयोगकर्ता नाम के संदर्भ में जानकारी का उपयोग करें। इनमें से एक सदस्यता प्रदाता है, जो एक प्रमाणीकरण स्टोर और सेवाओं का सेट प्रदान करता है।

दूसरा प्रोफाइलप्रोवाइडर है, जो प्रत्येक उपयोगकर्ता के खिलाफ उपयोगकर्ता-विशिष्ट डेटा को रखने की अनुमति देता है।

तुम अब भी ProfileProvider किया जाए या नहीं आप MembershipProvider उपयोग करने के लिए चुना है की परवाह किए बिना उपयोग कर सकते हैं। क्योंकि प्रोफाइलप्रोवाइडर को उपयोगकर्ता नाम के विरुद्ध डेटा स्टोर करना होगा (यानी Context.User.Identity.Name संपत्ति के संपर्क में), यह आगे बढ़ेगा और उपयोगकर्ता रिकॉर्ड को aspnet_Users में जोड़ देगा।

उम्मीद है कि यह अलगाव के कारण को स्पष्ट करता है।

0

ईमानदारी से यह मेरे लिए बहुत अधिक समझ में नहीं आता है। ऐसा लगता है कि aspnet_Membership तालिका को उपयोगकर्ता/एप्लिकेशन स्तर की जानकारी के लिए सेट किया गया था लेकिन उपयोगकर्ता आईडी एक पीके है। बहुत अजीब। शायद ऐसी स्थिति के लिए खुद को स्थापित कर रहे थे जहां कुछ बाद में रिलीज में आपके पास प्रति उपयोगकर्ता एकाधिक एप्लिकेशन हैं।

डेव का उल्लेख है कि अन्य सारणी जैसे aspnet_Profile हैं जो उपयोगकर्ता विशिष्ट जानकारी रखते हैं। यह हो सकता है कि एएसपी.नेट 2.0 लोग बस खेतों के विभिन्न समूहों को आसानी से पचाने वाले हिस्सों में अलग करने की कोशिश कर रहे थे।

मुझे पता है कि यह अनुमान का एक गुच्छा है। उम्मीद है कि कुछ वास्तविक ज्ञान वाले किसी व्यक्ति को

0

मैं इस page से इस explination पाया:

SqlMembershipProvider भंडार दो संबंधित तालिकाओं में उपयोगकर्ता खाता जानकारी:

  • aspnet_Users - प्रत्येक उपयोगकर्ता खाते के रिकॉर्ड बनाया है, नंगे अनिवार्य भंडारण। UserId कॉलम सिस्टम में प्रत्येक उपयोगकर्ता को विशिष्ट रूप से पहचानता है, और इसे एक अद्वितीय पहचानकर्ता (एक GUID) के रूप में संग्रहीत किया जाता है।

  • aspnet_Membership - एक उपयोगकर्ता आईडी कॉलम है जो प्रत्येक रिकॉर्ड को aspnet_Users में किसी विशेष रिकॉर्ड पर वापस जोड़ता है। Aspnet_Membership तालिका प्रत्येक उपयोगकर्ता खाते से जुड़े कोर डेटा को स्टोर करती है: ईमेल, पासवर्ड, सुरक्षा प्रश्न और उत्तर, आदि।

0

aspnet_users उपयोगकर्ताओं आप (प्रमाणीकरण फॉर्म) बना होता है ... नोट थेट जब अपने प्रमाणीकरण WINDOWS के लिए सेट है, उपयोगकर्ताओं विंडोज उपयोगकर्ताओं जैसे हैं डोमेन \ firstname.lastname

aspnet_membershipWebPart और उपयोगकर्ता सेटिंग्स

0

aspnet_users तालिका सभी उपयोगकर्ताओं के लिए जानकारी शामिल की तरह सामान में इस्तेमाल सदस्यता वरीयता जानकारी होती है: अनाम और गुमनाम नहीं। Aspnet_membership तालिका में पंजीकरण उपयोगकर्ताओं के बारे में जानकारी शामिल है (कोई अनाम नहीं)।

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