2016-08-25 18 views
6

के लिए दस्तावेज़ डीबी पहचान प्रदाता बैकएंड पर दस्तावेज़ डीबी का उपयोग करके मैं उपयोगकर्ता को प्राधिकरण प्रदान करने की कोशिश कर रहा हूं - लेकिन मैं इसके बारे में कोई संसाधन नहीं ढूंढ पा रहा हूं। प्रदान किया गया दस्तावेज़ SQL आधारित वाले (https://docs.asp.net/en/latest/security/authentication/identity.html) के लिए है।एएसपी.नेट कोर

कोई मदद?

+0

मैं एक परियोजना में एक ही उपयोग करता है, बस इसे बाहर https://github.com/arunselvakumar/jericho –

उत्तर

18

एक प्रारंभिक बिंदु के साथ आप प्रदान करने के लिए, वहाँ कई महत्वपूर्ण मुद्दों को ध्यान में रखना जब ASP.Net कोर साथ पहचान का उपयोग को देख रहे हैं:

फ्रेमवर्क संगतता

आप उल्लेख है कि आप ASP.Net कोर का उपयोग कर हो जाएगा, और यह या तो नेट कोर, या 'पूर्ण' नेट फ्रेमवर्क (जैसे .Net Framework 4.5.1) है, जो frameworks संपत्ति के तहत अपने project.json में निर्दिष्ट किया जा सकता है के साथ इस्तेमाल किया जा सकता ।

माइक्रोसॉफ्ट DocumentDB देशी नेट ग्राहक नहीं समर्थन नेट कोर करता है, इसलिए, आपको 'पूर्ण' .Net Framework को लक्षित करने के लिए ASP.Net कोर को कॉन्फ़िगर करना होगा। यदि आप यह सुनिश्चित नहीं करते हैं कि यह कैसे करें, तो आप विजुअल स्टूडियो 2015 में एक नई परियोजना बना सकते हैं, और 'एएसपी.Net कोर (नेट फ्रेमवर्क)' प्रोजेक्ट टेम्पलेट का चयन कर सकते हैं; project.json में आपके framework संपत्ति आपके लिए सही तरीके से कॉन्फ़िगर की जाएगी।

'पहचान' संस्करण

ASP.Net पहचान के कई संस्करण हैं, प्रदाता का चयन करते समय जागरूक रहें, जो वर्तमान में संदर्भ ASP.Net पहचान 2.2.1; हालांकि, नवीनतम संस्करण , साथ ASP.Net कोर जारी की है, NuGet पैकेज Microsoft.AspNetCore.Identity 1.0.0, जो कुछ मतभेद और अतिरिक्त सुविधा है द्वारा समर्थित है। (ध्यान दें कि आप पूर्ण नेट फ्रेमवर्क के साथ इस बाद पैकेज का उपयोग कर सकते हैं।)

कोई आधिकारिक कार्यान्वयन

माइक्रोसॉफ्ट ASP.Net पहचान के लिए एक आधिकारिक DocumentDB कार्यान्वयन के लिए नहीं करने का फैसला किया है, का हवाला देते हुए कि 'वहाँ दो समुदाय परियोजनाओं '(संदर्भ here)

तृतीय-पक्ष समर्थन

उपलब्ध तीसरे पक्ष के कार्यान्वयन की

, this one उपलब्ध हैं एड्रियन फर्नांडीज द्वारा सबसे व्यापक रूप से उपयोग किया जाता है जो माइक्रोसॉफ्ट देशी दस्तावेज़ डीबी क्लाइंट का उपयोग करते हुए एएसपी.Net पहचान के लिए समर्थन प्रदान करता है। नमूने गिटहब भंडार में शामिल हैं।(कृपया नीचे अद्यतन देखें।)

उदाहरण प्रयोग

, ASP.Net के साथ इस DocumentDB प्रदाता का उपयोग कर अतिरिक्त सुविधाओं सहित का एक उदाहरण, here पाया जा सकता है।

माइक्रोसॉफ्ट डॉक्यूमेंट डीबी प्रदाता के साथ एएसपी.Net कोर का उपयोग करने का एक अतिरिक्त उदाहरण here पाया जा सकता है।

मैंने दस्तावेज़ डीबी के लिए अपना स्वयं का पहचान 3 प्रदाता लिखा है; अगर मैं इसे गिटहब पर रिलीज़ करता हूं तो मैं इस उत्तर को एक लिंक के साथ अपडेट कर दूंगा।

अद्यतन 19/04/2017

एक समाधान की तलाश में उन लोगों के लिए, मैं अब बर्नहार्ड कोएनिग द्वारा AspNetCore.Identity.DocumentDb परियोजना सलाह देते हैं। यह सुविधा पूर्ण है, यूनिट टेस्ट, और नमूना एएसपी.Net कोर प्रोजेक्ट भी शामिल है। Nuget के माध्यम से भी उपलब्ध है। यह netstandard1.6net46 प्रोफाइल का समर्थन करता है।

+0

से बेहतर है, विस्तृत प्रतिक्रिया ब्रो के लिए बहुत बहुत धन्यवाद, बहुत मदद मिली :-) –

+2

कृपया अपनी पहचान 3 प्रदाता जारी करें। :-) – Holf

+1

@ हॉल्फ दुर्भाग्य से मैं ऐसा करने में असमर्थ हूं क्योंकि यह एक वाणिज्यिक उत्पाद का हिस्सा है। हालांकि, मैंने अपने उत्तर को अद्यतन किया है, जिसे मैं वर्तमान में सबसे पूर्ण ओपन-सोर्स प्रोजेक्ट मानता हूं, जिसे मैं अनुशंसा करता हूं। – dmcquiggin

1

मेरी समझ माइक्रोसॉफ्ट यह संभव DocumentDb साथ मोंगो ड्राइवरों उपयोग करती हैं इसलिए हो सकता है आप इस Mongo implementation for asp.net core identity

इस्तेमाल कर सकते हैं या मौजूदा काम है कि दूसरों को इस दिशा में किया है हो सकता है के लिए आगे गूगल के लिए किया जाता है।

यह अपने आप को लागू करने के लिए आप कम से कम IUserStore पर लागू करने के लिए और की आवश्यकता होगी IRoleStore आप भी प्रेरणा और उन लागू करने पर मार्गदर्शन के लिए एफई कार्यान्वयन UserStore और RoleStore देख सकते हैं।

+0

जाँच के रूप में एक FYI करें, परियोजना से जुड़े हुए ASP.Net पहचान संस्करण 2.2.1, जो नहीं है के लिए विशिष्ट है सबसे नया। दस्तावेज़ डीबी क्लाइंट की तरह, मोंगोडीबी क्लाइंट भी नेट * कोर * के साथ असंगत हैं (इसका उपयोग * नेट फ्रेमवर्क * पर एएसपी.Net कोर के साथ किया जा सकता है)। मैंने इस पर कुछ अन्य जानकारी में विस्तार किया है। यहां 'कोर' के बारे में कुछ भ्रम भी हो सकता है। प्रोजेक्ट में संदर्भ 'माइक्रोसॉफ्ट.एस्पनेट.इडेन्टिटी.कोर' संस्करण = "2.2.1" targetFramework = "net45"; एएसपी.Net कोर के साथ ऐसा कुछ नहीं है। – dmcquiggin

+0

हाँ, मेरा बुरा यह है कि उसने "नया" एएसपी.नेट पहचान कहा, मैंने इसे बारीकी से नहीं देखा, मैंने अभी अपने उत्तर में लिंक को अपडेट किया है जो .NET कोर https: // के लिए है। github.com/tugberkugurlu/AspNetCore.Identity.MongoDB –

+0

कोई समस्या नहीं, इस कोर लेबल का अत्यधिक दुरुपयोग किया जाता है और भ्रम का कारण बनता है। मैं व्यक्तिगत रूप से एक मोंगोडीबी कार्यान्वयन का उपयोग करने की कोशिश करने के मार्ग पर नहीं जाऊंगा, जब पहले से ही एक दस्तावेज़ डीबी है, जो रोल प्रदाता (मेरे उत्तर में लिंक) का भी समर्थन करता है।मोंगोडीबी चालक संगतता मौजूदा मोंगोडीबी आधारित ऐप्स माइग्रेट करने में लोगों की सहायता करने पर लोगों की सहायता करने पर ध्यान केंद्रित करती है, जो दस्तावेज़ डीबी, ** ** मूल दस्तावेज़ डीबी क्लाइंट के प्रतिस्थापन के रूप में नहीं है, जिसे बहुत अधिक अनुकूलित किया जाता है (और यही कारण है कि यह अभी तक पोर्ट नहीं किया गया है। नेट कोर - इसे फ्रेमवर्क सुविधाओं की आवश्यकता है)। – dmcquiggin

0

सबसे अच्छा समाधान .NET कोर पहचान ढांचे के लिए दस्तावेज़ डीबी प्रदाता का उपयोग करेगा। लेकिन अब तक कोई भी नहीं था इसलिए मैंने AspNetCore.Identity.DocumentDB बनाया और एमआईटी लाइसेंस के तहत इसे गिटहब पर प्रकाशित करने का फैसला किया।

यह .NET कोर पहचान के लिए मौजूदा mongodb प्रदाता का एक बंदरगाह है और दावे, टोकन & लॉग इन नेस्टेड ऑब्जेक्ट्स के रूप में स्टोर करता है। यद्यपि कोई भी mongodb इंटरफ़ेस के साथ DocumentDB का उपयोग कर सकता है, लेकिन यदि संभव हो तो मूल एसडीके का उपयोग करने की अनुशंसा की जाती है।

लाइब्रेरी पहले से ही काफी स्थिर है और NuGet पैकेज के रूप में उपलब्ध है।

नोटिस: सी # के लिए दस्तावेज़ डीबी एसडीके स्थिर रिलीज में लक्ष्य प्लेटफॉर्म के रूप में .NET कोर का समर्थन नहीं करता है। सौभाग्य से माइक्रोसॉफ्ट पहले से ही .NET कोर समर्थन जोड़ने पर काम कर रहा है और दस्तावेज़ डीबी एसडीके का एक पूर्वावलोकन प्रकाशित किया है: कनेक्ट() पर नेट मानक समर्थन; 2016 घटना। AspNetCore.Identity.DocumentDB एसडीके दोनों का समर्थन करता है।

.NET मानक एपीआई का एक विनिर्देश है जो सभी .NET रनटाइम पर उपलब्ध होना चाहिए और वर्तमान में .NET कोर और .NET Framework द्वारा समर्थित है।

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