27

मैं वर्तमान में बहुत पुराना परिवर्तित कर रहा हूं, लेकिन क्लासिक एएसपी साइट को एएसपी.Net पर काम कर रहा हूं।माइक्रोसॉफ्ट सदस्यता प्रदाता बनाम कस्टम प्रदाता वीएस पूर्ण कस्टम लॉगिन सिस्टम

इसमें एक पूरी तरह से कस्टम लिखित उपयोगकर्ता प्रबंधन प्रणाली है। हालांकि यह ठीक काम करता है, इसे वास्तव में ताज़ा करने की ज़रूरत है क्योंकि मैं कामों में कुछ भविष्य की परियोजनाओं के लिए और अधिक लचीला होना चाहता हूं।

जब मैंने किसी से इस बारे में पूछा, तो उन्होंने कहा, "आपको माइक्रोसॉफ्ट प्रदाता का उपयोग करने की आवश्यकता है" और इस बारे में एक व्याख्यान दिया कि माइक्रोसॉफ्ट इन सभी चीजों को मुफ्त में कैसे जारी करता है और वे कितने अच्छे हैं और जितना संभव हो उतना उपयोग किया जाना चाहिए।

मैंने इस पर काफी कुछ शोध किया है (मुख्य रूप से http://asp.net/learn पर वीडियो देख रहे हैं) और कुछ विशेषताओं से बहुत प्रभावित हूं क्योंकि ऐसा लगता है कि मुझे लिखने के लिए उम्र लेने वाले सामानों के लिए ड्रैग और ड्रॉप घटक दिखाई देते हैं ।

हालांकि, वर्तमान सदस्यता डेटाबेस को समझाने के लिए जटिल है, यह एक पूरी तरह से कस्टम लिखित डेटाबेस है जिसमें कई आंतरिक संबंध हैं ... यह डिफ़ॉल्ट माइक्रोसॉफ्ट प्रदाता के साथ वास्तव में "संगत" नहीं है।

मैंने How Do I: Create a Custom Membership Provider? पर एक नज़र डाली है, लेकिन मुझे अपने आराम क्षेत्र से थोड़ा सा महसूस होता है और चिंतित है कि यह धीमा हो जाएगा, सुरक्षा छेद पेश करेगा या बस काम नहीं करेगा।

दिन के अंत में, माइक्रोसॉफ्ट सदस्यता प्रदाता को मेरे लिए काम करना चाहिए - मुझे केवल एक ही अनुकूलन की आवश्यकता है जो मेरे डेटाबेस में उपयोगकर्ता नाम/पासवर्ड फ़ील्ड का उपयोग करने के लिए लॉगिन है और उपयोगकर्ता स्क्रिप्ट बनाएं जिसमें बहुत से कस्टम हैं कई तृतीय पक्ष प्रणालियों के लिए कोड (प्रावधान सेवाओं आदि की आवश्यकता है)।

मैं बस सोच रहा था, यदि आप इसी तरह की स्थिति का सामना करते हैं तो आप क्या करेंगे?

  1. माइक्रोसॉफ्ट सदस्यता प्रदाता का उपयोग करें और किसी भी तरह यह आप के लिए काम करने के लिए (हालांकि मैं सुझाव चाहते हैं)

  2. उपयोग माइक्रोसॉफ्ट सदस्यता प्रदाता लेकिन अपने कोड के आसपास अनुकूलित है कि कस्टम प्रदाता का उपयोग मिलता है।

  3. अपना खुद का अनुकूलित अनुकूलित समाधान का उपयोग करें?

+0

यदि सभी उपयोगकर्ता एक ही कंपनी में हैं, तो क्या कोई अन्य प्रमाणीकरण उपकरण नहीं है जिसे आप पिगबैक कर सकते हैं? अपने उपयोगकर्ताओं को एक और पासवर्ड का ट्रैक रखने से बचें, स्वयं को पासवर्ड बदलने वाले तर्क लिखने से बचाएं। – DOK

+0

सभी उपयोगकर्ता एक ही कंपनी में नहीं हैं ... पहला उपयोगकर्ता एक कंपनी और उनके नियंत्रण कक्ष से साइन अप करता है, वे अतिरिक्त उपयोगकर्ताओं को स्थापित कर सकते हैं। प्रदाता कार्यान्वयन को केवल पढ़ने के लिए – Wil

उत्तर

8

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

एक त्वरित और गंदा विकल्प आपको सकता है के रूप में है निश्चित रूप से जा रहे हैं , संग्रहित प्रक्रियाओं को हैक करें जो SQL सदस्यता प्रदाता का उपयोग करता है लेकिन प्रावधान सेवाओं के लिए कस्टम कोड शायद इसे खींच रहा है।

यदि आप इसके बारे में सोचते हैं तो सेवाओं का रिमोट प्रावधान वास्तव में सदस्यता प्रदाता में नहीं है, यह वास्तव में सदस्यता कार्य नहीं है - सभी सदस्यता करता है उपयोगकर्ता नाम और पासवर्ड और उनके आसपास प्रमाणीकरण प्रदान करता है। मेरी अपनी भावना यह है कि आपको वहां से सेवाओं के प्रावधान को स्थानांतरित करना चाहिए, और इसे उपयोगकर्ता के निर्माण के बाद एएसपी.NET साइट पर निष्पादित करना चाहिए - भले ही सदस्यता प्रदाता ने अपनी बात पूरी कर ली हो, भले ही वह संग्रहीत प्रक्रिया को कॉल कर रहा हो। यदि आप ऐसा करते हैं तो आप पाएंगे कि SQL सदस्यता प्रदाता आपको वह सब कुछ करेगा जो आपको चाहिए (संभवतः भूमिका & प्रोफ़ाइल प्रदाताओं के साथ भी), और इस प्रकार आपके पास लिखने के लिए कम कोड है!

+0

मैं उन्हें अलग करने के साथ सहमत हूं ... उस समय लिखा गया था, यह केवल एक ही आवेदन था और मॉड्यूलर नहीं बनाया गया था, या यहां तक ​​कि सोचा था कि इसका उपयोग अन्य प्रणालियों में किया जाएगा। यह उन चीज़ों में से एक है जिन्हें मैं ताज़ा करने में करना चाहता हूं। मैं एमएस की संग्रहीत प्रोसेस को संपादित करने के बारे में चिंतित हूं, बाद में एक अपडेट मुझे पेंच कर देगा। इस बिंदु पर, मुझे लगता है कि मैं सब कुछ कस्टम कर सकता हूं (दिन के अंत में, सिस्टम ने पिछले ~ 7 वर्षों के लिए ठीक काम किया है), और बाद में एमएस सामान को लागू करने पर विचार करें ... – Wil

+0

लेकिन, हाँ, भूमिकाएं और प्रोफाइल मुझे आश्चर्यचकित कर रहा है, मुझे कुछ चीजें लिखने के लिए सप्ताह लग गए, और उन्होंने बॉक्स को काम करने वाले घटकों को खींच और छोड़ दिया है! – Wil

+2

मैंने वीडियो नहीं देखा है, लेकिन "कैसे करें: एक कस्टम सदस्यता प्रदाता लागू करें" (http://msdn.microsoft.com/en-us/library/ms366730.aspx) एमएसडीएन पर एक बहुत अच्छा परिचय देता है डीबी कार्यान्वयन पर सिफारिशों सहित एक साधारण सदस्यता प्रदाता जिसे आसानी से अनुकूलित किया जा सकता है। –

3

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

सावधान रहें कि इसके लिए एएसपी.NET प्रबंधन इंटरफ़ेस "बॉक्स से बाहर" नहीं है, आपको अपना खुद का रोल करना होगा या किसी तृतीय पक्ष का उपयोग करना होगा।

8

मैं अतीत में इसी तरह की स्थितियों में रहा हूं। दोनों मामलों में हमने मौजूदा तंत्र के आसपास प्रदाताओं (सदस्यताप्रदाता, रोलप्रोवाइडर, प्रोफाइलप्रोवाइडर) के कस्टम कार्यान्वयन बनाए।

दोनों मामलों में हमने केवल पढ़ने-योग्य पहुंच के लिए प्रदाता कार्यान्वयन का उपयोग किया, उदाहरण के लिए हमें web.config और इस तरह के आसान सत्यापन gubbins देने के लिए। उपयोगकर्ता प्रशासन कोड को अकेले छोड़ दिया गया क्योंकि यह ठीक काम करता था।

+0

+1। मैंने परियोजनाओं पर एक अलग वर्ग पुस्तकालय में शेष प्रशासन कोड छोड़ते समय प्रपत्र प्रमाणीकरण के आसपास निर्मित कार्यक्षमता के उपयोग को प्राप्त करने के लिए परियोजनाओं पर भी ऐसा किया है। – Element

3

अपने स्वयं के डेटाबेस टेबल के खिलाफ काम करने के लिए मेरे विशेष सदस्यता प्रदाता का उपयोग करें।

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