8

क्या अधिकांश लोग सदस्यता क्षमताओं वाली साइट विकसित करते समय .NET के SqlMembershipProvider, SqlRoleProvider, और SqlProfileProvider का उपयोग करते हैं?क्या अधिकांश लोग .NET के SqlMembershipProvider, SqlRoleProvider, और SqlProfileProvider का उपयोग करते हैं?

या क्या कई लोग अपने स्वयं के प्रदाता, या यहां तक ​​कि अपनी सदस्यता प्रणाली पूरी तरह से करते हैं?

एसक्यूएल प्रदाताओं की सीमाएं क्या हैं जो आपको अपना खुद का रोल बनाती हैं?

क्या अतिरिक्त कार्यक्षमता प्रदान करने के लिए एसक्यूएल प्रदाताओं को विस्तार करना आसान है?

संदर्भ लिए
Per Scott Gu's Blog, Microsoft provides the source code for the SqlMembershipProvider ताकि आप इसे बजाय शून्य से शुरू की अनुकूलित कर सकते हैं कि,। बस एक एफवाईआई।

+4

दोस्त! प्रदाताओं में निर्मित स्रोत। बहुत बढ़िया! मेरा काम कल काम पर चला जाता है :-) –

+0

हाहा हाँ। जब मैं इसे भी मिला तो मैं बहुत उत्साहित था।मैं इस पागल प्रणाली को बनाने में सक्षम था जो गतिशील रूप से वर्तमान उप-डोमेन के आधार पर मुख्य कनेक्शन स्ट्रिंग सेट करता है। आम तौर पर, आपको एक डिफ़ॉल्ट कनेक्शन स्ट्रिंग की आवश्यकता होती है। –

उत्तर

6

हम प्रोफ़ाइल प्रदाता को छोड़कर सबकुछ का उपयोग करते हैं। प्रोफाइल प्रदाता पूरी तरह से पाठ आधारित है और पूर्ण पाठ खोज करता है - यह उपयोगकर्ता धीमा हो जाता है क्योंकि यह बहुत धीमा हो जाता है। हमने सदस्यता एपीआई डेटाबेस के "हमारे स्वयं के" प्रोफाइल अनुभाग के लिए एक बेहतर समाधान पाया है जो सदस्यता में उपयोगकर्ता आईडी के लिए महत्वपूर्ण है।

1

मैं आम तौर पर बॉक्स से बाहर आने वाले प्रदाताओं का उपयोग करता हूं, जो मुख्य समस्या है जो उपयोगकर्ताओं के प्रोफाइल गुणों में पूछताछ कर रही है। उदाहरण के लिए उन सभी उपयोगकर्ताओं को ढूंढना जिनके पास प्रोफ़ाइल नामक प्रोफ़ाइल विशेषता है जो सत्य के बराबर होती है। यह अंतर्निहित संरचना में संग्रहीत तरीके से नीचे है।

0

सिद्धांत में वे अच्छे लगते हैं, लेकिन यदि आप बहुत सारे अमूर्त रैपर बनाने के बिना कोई यूनिट परीक्षण करते हैं तो मौका नहीं।

0

यदि आपको केवल मूल उपयोगकर्ता सहायता (भूमिकाएं, प्रोफाइल इत्यादि) की आवश्यकता है तो डिफ़ॉल्ट प्रदाता महान काम करेंगे।

यदि आपको अधिक अनुकूलित समर्थन की आवश्यकता है (डेटाबेस में डेटा स्टोरेज डिफ़ॉल्ट प्रदाताओं [जैसे ओरेकल] द्वारा समर्थित नहीं है, जो डेटाबेस पहले से मौजूद है, एक भारी अनुकूलित स्कीमा है) तो आपको अपने स्वयं के प्रदाताओं को रोल करना चाहिए।

मेरे लिए, मेरी वर्तमान साइट को केवल मूल भूमिका समर्थन (और न्यूनतम प्रोफाइल समर्थन) की आवश्यकता है, इसलिए मैं डिफ़ॉल्ट प्रदाताओं के साथ गया।

2

मैं व्युत्पन्न MembershipUser प्रकार का उपयोग कर कस्टम उपयोगकर्ता स्कीमा रैप करने के लिए अपने खुद के MembershipProvider कक्षाएं उपलब्ध कराई गई है, तो प्रोफ़ाइल शैली गुण अब उपलब्ध हर जगह एक डाली के माध्यम से ली गई उपयोगकर्ता के हिस्से के रूप में हैं।

1

मैंने पहले एसकएलएमबरशिप का उपयोग किया है और यह काफी अच्छा है, जब तक कि आपको कुछ कस्टम की आवश्यकता न हो। मुझे याद है कि पहले नाम और अंतिम नाम की जानकारी की तरह कुछ चाहिए और मुझे एहसास हुआ कि उसके लिए कोई फ़ील्ड नहीं है। अंत में विस्तार करने के बजाय मैंने प्रदाता के टिप्पणी क्षेत्र का उपयोग किया है और वहां नाम नाम जोड़ा है। यह शायद एक खराब अभ्यास/आलसी/हैक तरीका है लेकिन यह मेरे लिए एक कड़े परिस्थिति में काम करता है ..

+1

हमें इसकी भी आवश्यकता है - हमने अपनी सभी आवश्यक जानकारी के साथ अपनी खुद की क्लाइंट टेबल बनाई है (aspnet_membership table userid के लिए कुंजी) और उसके बाद एक कस्टम पंजीकरण क्लास बनाया जो एपीआई और हमारे कस्टम टैबलेट को अपडेट करता है। बहुत अच्छा काम करता है। –

+1

या आप केवल SqlProfileProvider का उपयोग कर गुणों का उपयोग कर सकते हैं! इसके लिए यही है! लेकिन ऐसा लगता है कि जिम इवांस के उल्लेख के साथ कुछ मुद्दे हैं। –

0

मैंने दोनों कस्टम कक्षाओं का उपयोग किया है और निर्मित किया है। जब आपको किसी भिन्न डेटाबेस या स्कीमा पर जाने की आवश्यकता होती है या अतिरिक्त जानकारी प्राप्त करने की आवश्यकता होती है।

मैंने परतों को सारणीबद्ध किया ताकि यह तर्क परत पर काम करे और एक डीएएल परत हो जो data.common.dbprovider बिट का उपयोग करे ताकि यह उचित रूप से सामान्य हो।

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