2010-07-21 14 views
14

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

+1

मैं अपने दो सवाल पूछ लगता है। ग्राहक सदस्यता प्रदाता का निर्माण करना और जैन्रेन जैसी लाइब्रेरी का उपयोग करना दो अलग-अलग चीजें हैं। – jfar

+0

दरअसल मैं जैन्रेन जैसे तीसरे पक्ष के पुस्तकालयों के बारे में सोच नहीं रहा हूं ... मैं मुख्य रूप से जानना चाहता था कि मुझे सदस्यता में निर्मित सिस्टम का उपयोग करना चाहिए या अपना खुद का कार्यान्वयन करना चाहिए (सामान्य प्रमाणीकरण के लिए)। सड़क के नीचे, मैं ओपनिड, आदि के साथ एकीकृत करने पर विचार कर सकता हूं लेकिन मुझे अभी एक मूल लॉगिन प्रणाली की आवश्यकता है जो बाद में स्केल कर सके। उदाहरण के लिए, स्टैक ओवरफ्लो एमवीसी का उपयोग करके बनाया गया है। उन्होंने अपनी लॉगिन प्रणाली को कैसे कार्यान्वित किया? – Prabhu

उत्तर

25

व्यक्तिगत रूप से, मैं जब यह एक SQL सर्वर डेटाबेस लिए बनी रहती है ASP.NET Membership provider कि कोर ढांचे में उपलब्ध है ... का उपयोग कर नफरत । एक ही वेबसाइट के लिए सभी टेबल और विचार इतने अधिक हैं। एक होस्टिंग कंपनी के लिए? .. शायद ... लेकिन मेरे द्वारा किए गए सभी एंटरप्राइज़ साइटों के लिए .. यह इतनी भयानक ओवरकिल और परेशानी रही है। वास्तविक प्रदाता इंटरफेस, आदि के रूप में ... यह बहुत अच्छा है .. लेकिन अभी भी बहुत कट्टर, आदि सरल-मध्यम साइटों, आईएमओ के लिए एक ओवरकिल।

तो व्यक्तिगत रूप से, मैं सबसे बुनियादी-माध्यमिक वेबसाइटों के लिए सदस्यता दृढ़ता को संभालने के लिए कुछ सरल कस्टम कोड का उपयोग करूंगा।

यह तो अपने दूसरे सवाल का segues: OpenId। एंड्रयू अर्नॉट के DotNetOpenAuth .NET framework का उपयोग करें -> यह कड़वाहट से गंभीर गधा (टीएम) करता है। इसका उपयोग इस बात से स्वतंत्र है कि आप उपयोगकर्ता सदस्यता डेटा को एक संग्रह में कैसे सहेजते हैं। अर्थात। यदि आप आगे बढ़ते हैं और एसक्यूएल सर्वर + एएसपी.NET सदस्यता प्रदाता का उपयोग करते हैं, तो आप अभी भी (और चाहिए) DotNetOpenAuth का उपयोग कर सकते हैं। यदि आपके पास डेटाबेस में उपयोगकर्ता विवरण सहेजने का एक सरल, कस्टम तरीका है (जो मैं करता हूं), तो आप अभी भी डॉटनेट ओपेनएथ का उपयोग कर सकते हैं - दोनों एक-दूसरे से स्वतंत्र हैं।

तो, IMO, दो overcomplicated ASP.NET सदस्यता + Sql सर्वर सामान लेकिन एक साधारण तालिका या अपने खुद के उपयोगकर्ता जानकारी को बचाने के लिए उपयोग नहीं करते। इसके बाद, आपको किसी भी OpenId सामग्री के लिए DotNetOpenAuth का उपयोग करना होगा (StackOverflow अपने OpenId लॉगिन को संभालने के लिए DotNetOpenAuth का उपयोग करता है)।

गुड लक :)

(मुझे यकीन है कि ASP.NET सदस्यता प्रदाता + Sql सर्वर की मेरी opnions कि जानकारी लागू करने के लिए बेवकूफ-क्रोध करने के लिए कुछ लोगों को, यहाँ का कारण होगा हूँ)।

+2

+1 - मुझे वास्तव में आपका जवाब पसंद है क्योंकि यह नौकरी के लिए सही उपकरण का उपयोग करता है। मैंने कई परियोजनाएं देखी हैं जहां उनमें अत्यधिक जटिल ऐड-ऑन शामिल हैं जो एप्लिकेशन की आवश्यकता के लिए पूरी तरह से अधिक हैं। लगभग सभी मामलों में जहां मैंने इसका अनुभव किया है, यह आमतौर पर पता चला है कि देव एक नया खिलौना खेलना चाहता था ... वास्तव में यह सोचने के बिना कि यह नौकरी के लिए सही है या नहीं। – Dal

+1

संपादित करें, कृपया (मैं नहीं कर सकता)। यह "segue" नहीं "segway" ... जब तक आप निजी परिवहन उपकरण है, जो हमेशा के लिए जिस तरह से हम साल आ लघुकरण 2000 – xanadont

+2

चीयर्स @xanadont बदल जाएगा के बारे में बात कर रहे हैं - पोस्ट अपडेट किया गया। –

13

यदि आपको पूछना है, तो आपको अपना खुद का प्रदाता नहीं लिखना चाहिए। सुरक्षा अच्छी तरह से करना वास्तव में कठिन है। यह गलत करना अविश्वसनीय रूप से आसान है।

लेकिन अच्छी खबर यह है कि आप जो चाहते हैं वह अविश्वसनीय रूप से आम है, और परीक्षण किए गए हैं, ऑफ-द-शेल्फ टूल जो पहले से ही करते हैं। एक उदाहरण Janrain है। अन्य भी हैं। जब भी संभव हो, मौजूदा, सिद्ध उपकरण का उपयोग करें।

+1

यह भी है: http://code.google.com/p/dotnetopenid/ – jfar

4

यहां एक विकल्प है और जिसे मैं सफलतापूर्वक उपयोग करता हूं।

आपके पास अनिवार्य रूप से एक ही उपयोगकर्ता है जिसे कई तरीकों से प्रमाणित किया जा सकता है।

निर्मित प्रदाता का उपयोग करके, जिसे आप निश्चित रूप से किसी भी समय स्विच कर सकते हैं, आपको उस उपयोगकर्ता को कई तरीकों से प्रमाणित करने से रोकता नहीं है।

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

यदि कोई नया उपयोगकर्ता आपकी साइट पर प्रमाणित करता है और खाता नहीं है तो सदस्यता प्रदाता में स्वचालित रूप से एक बनाएं। पासवर्ड को कुछ यादृच्छिक कचरे में सेट करें क्योंकि वे इसका कभी भी उपयोग नहीं करेंगे। उन्हें इसके साथ कई लॉगिन प्रकारों को भी जोड़ना जारी रखें।

यदि कोई उपयोगकर्ता सीधे लॉगिन करना चाहता है तो मानक सदस्यता प्रदाता पासवर्ड रीसेट तंत्र का उपयोग करें और उन्हें एक प्रदान करें।

लंबी कहानी छोटी: अब के लिए निर्मित तंत्र का उपयोग करें। यह आपको वह करने से नहीं रोकता जो आप करना चाहते हैं।

8

NerdDinner के साथ क्या हो रहा है पर एक नज़र डालें। उन्होंने हाल ही में (6 महीने पहले) ओपनआईडी के साथ एकीकृत किया है, Google, याहू के साथ विशेष प्रदाताओं के रूप में। वे अभी भी अपने सभी 'मूल' लॉगिन को अनुमति दे रहे हैं। यहां एक साइट का उदाहरण दिया गया है जिससे उपयोगकर्ता विभिन्न तरीकों से प्रमाणीकृत कर सके।

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

+1

बहुत बढ़िया। नेरड डिनर ट्यूटोरियल कभी भी सबसे अच्छे लिखित ट्यूटोरियल में से एक है। क्या उनके पास लॉगिन तंत्र के लिए एक ट्यूटोरियल है? – Prabhu

+0

@Prabhu: मैं एक ट्यूटोरियल या लॉगिन का पूर्वाभ्यास नहीं देखा है, लेकिन मैं आपको जॉन गैलोवे के साथ संपर्क में प्राप्त कर सकते हैं संदेह है। वह आपको लॉग इन सिस्टम से परिचित होने पर कुछ/किसी भी संसाधन को इंगित करने में सक्षम होंगे। http://twitter.com/jongalloway –

1

हाल ही में शुरू SimpleMembershipProvider वर्ष asp.net सदस्यता साथ कई मुद्दों पर संबोधित करते हैं। उपयोगकर्ता तालिका स्कीमा पर उपयोग और नियंत्रण में आसानी। यह किसी भी नए ऐप्स (11/2012 तक) के लिए शुरुआती बिंदु होना चाहिए।

asp.net सदस्यता पर एक सभ्य इतिहास के साथ साथ SimpleMembershipProvider पर एक प्राइमर के लिए नीचे दिए गए लिंक देखें।

http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx

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