2012-04-16 15 views
5

ऑर्चर्ड के साथ कस्टम सदस्यता प्रदाता को एकीकृत करने का पसंदीदा तरीका क्या है?ऑर्चर्ड सीएमएस कस्टम सदस्यता

मैं एक नया IMembershipService लागू करने और IUserService (Orchard.Users से) के आसपास पदों के एक जोड़े को देखा है और जो लग रहे हैं इस तरह के OpenAuthentication के रूप में फिर वहाँ अन्य मॉड्यूल एक बहुत कि अधिक से अधिक करने के लिए (लेकिन अभी भी UserPart का उपयोग करता है? ?)।

हमारे पास पहले से ही एक एएसपी.NET सदस्यता प्रदाता लिखा गया है, क्या इसे एकीकृत किया जा सकता है?

उत्तर

7

IMembershipService की कस्टम कार्यान्वयन आप डिफ़ॉल्ट Orchard.Users बिल्कुल मॉड्यूल का उपयोग नहीं करना चाहते हैं, तो जाने के लिए एक तरीका है। उपयोगी है जब आप अभी भी फॉर्म प्रमाणीकरण करना चाहते हैं, लेकिन केवल उपयोगकर्तापर्ट में ऑथ डेटा को स्टोर करें।

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

  • IMembershipProvider प्रमाणीकरण डेटा प्रबंधन (उपयोगकर्ताओं को पुनः प्राप्त/बनाने)
  • IAuthenticationProvider प्रमाणीकरण करने के बारे में है के बारे में है
  • :

    तो, सामान्य रूप से कहें

आपकी ज़रूरतों के आधार पर आप या तो दोनों को ओवरराइड कर सकते हैं।

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

+3

यदि एक अलग डेटा स्टोर का उपयोग करके IMembershipService को लागू करना है, तो IUser के लिए ContentItem प्रॉपर्टी कहां से आती है? – Oll

+0

हम्म, वास्तव में अच्छा सवाल है। 'IUser' को एक सामग्री आइटम होना आवश्यक है, इसलिए यह चीजों को थोड़ा सा जटिल करता है, लेकिन केवल थोड़ा सा। आप किसी भी सामग्री के साथ एक सामग्री सामग्री (उदाहरण के लिए "उपयोगकर्ता" एक बना सकते हैं) और उसे प्रत्येक 'IUser' के लिए' ContentItem' प्रॉपर्टी 'के मान के रूप में डाल सकते हैं। यदि आपके परिदृश्य में उपयोगकर्ता को अन्य हिस्सों को जोड़ने की आवश्यकता नहीं है, तो यह पूरी तरह से काम करेगा। –

+0

आप भी उदाहरण सकते हैं। वर्तमान साइट सामग्री आइटम को वहां रखें, इसलिए आपको कुछ भी बनाने की आवश्यकता नहीं होगी। वर्तमान साइट 'IOrchardServices.WorkContext.CurrentSite' के माध्यम से सुलभ है। –