2009-09-28 12 views
10

मेरे पास एक मौजूदा समुदाय बैकएंड है और मुझे अपनी प्रस्तुति परत के लिए उम्ब्राको का उपयोग करना पसंद है। मैं नेट फॉर्म प्रमाणीकरण के साथ लॉगिन/लॉगआउट कैसे कार्यान्वित कर सकता हूं? (मैं सदस्य कार्यक्षमता का उपयोग नहीं करना चाहता)। मेरे पास विभिन्न प्रकार के उपयोगकर्ता हैं जो विभिन्न प्रकार के पृष्ठों तक पहुंच प्राप्त करते हैं। मैं इसे कैसे नियंत्रित कर सकता हूं? उपयोगकर्ता नियंत्रण?umbraco प्रमाणीकरण

उत्तर

18

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

इससे लाभ यह है कि आप उम्ब्राको सदस्यता प्रणाली के साथ पूर्ण एकीकरण प्राप्त करते हैं, और एक कस्टम रोल प्रदाता का उपयोग करके, संपादक पृष्ठ-संपादन सुविधाओं का उपयोग करके पृष्ठों को प्रतिबंधित करने में सक्षम होंगे क्योंकि आपके द्वारा हुक करने के विपरीत अपने स्वयं के सुरक्षा नियंत्रण।

आप UmbracoMembershipProvider वर्ग का विस्तार और ValidateUser विधि अधिभावी द्वारा एक सरल सदस्यता प्रदाता बनाने के लिए सक्षम होना चाहिए। मैंने यह खुद नहीं किया है, लेकिन मैं दूसरों के बारे में जानता हूं।

कस्टम रोल प्रदाता के खिलाफ प्रमाणित करने के लिए, आपको रोलप्रोवाइडर से प्राप्त कक्षा बनाने की आवश्यकता होगी। तरीकों आप अधिभावी में दिलचस्पी होगी कर रहे हैं - IsUserInRole, FindUsersInRole, GetAllRoles और GetRolesForUser

यहां स्कॉट गुथरी blog post का एक लिंक है जिसमें प्रदाता API पर अधिक जानकारी है, आपको डिफ़ॉल्ट प्रदाताओं के लिए स्रोत कोड समेत कभी भी जानने की आवश्यकता होगी।

+0

अपने मन कैसे अपने खुद के सदस्य/भूमिका प्रदाता मॉडल बनाने के लिए पर विस्तृत होगा कर सकते हैं? –

+0

प्रदाता मॉडल पर थोड़ी अधिक जानकारी दी है जो उम्मीदपूर्वक मदद करेगा। – richeym

1

मैंने अपनी umbraco साइटों पर दो दृष्टिकोणों का उपयोग किया है। दोनों दृष्टिकोणों में लॉगिन और लॉगआउट के लिए उपयोगकर्ता नियंत्रण शामिल हैं जो उपयोगकर्ता को एक कस्टम समाधान और समाशोधन प्रमाण पत्र के साथ क्रमशः प्रमाणीकृत करने के लिए ज़िम्मेदार हैं। मैं दोनों दृष्टिकोणों के लिए भी जोड़ता हूं, एक umbracoMembers केवल उस दस्तावेज़ प्रकार के लिए विशेषता है जिसे मैं संरक्षित करना चाहता हूं।

पहले दृष्टिकोण में, मेरे पास प्रत्येक व्यक्तिगत टेम्पलेट जांच था कि उपयोगकर्ता को पहुंच से प्रतिबंधित किया गया था या नहीं। इसे संक्षेप में करने के लिए, मैंने एक साइटसमर क्लास बनाया है जिसमें एक मेम्बर या isLoggedIn विधि है जो साइट-व्यापी उपलब्ध थी और इसे एक्सएसएलटी या उपयोगकर्ता कंट्रोल मैक्रो से भी बुलाया जा सकता था। इस दृष्टिकोण का लाभ यह है कि मैं केवल एक ही पहुंच अस्वीकृत पृष्ठ प्रदान करने के बजाय प्रत्येक टेम्पलेट पर कस्टम संदेश तैयार कर सकता हूं।

दूसरा दृष्टिकोण - जिसे मैं अब पसंद करता हूं - अगर किसी अनुमति का उपयोग करने के लिए उपयोगकर्ता के अधिकार की जांच करने के लिए जिम्मेदार अनुमति मैक्रो बनाना है (यानी एक umbracoMembers के लिए चेक केवल विशेषता और, यदि सही है, तो सत्र के लिए जांचता है चर)। यह मैक्रो मास्टर टेम्पलेट में शामिल हो जाता है, और इसलिए प्रत्येक टेम्पलेट पर निष्पादित होता है। यदि उपयोगकर्ता को वर्तमान पृष्ठ तक पहुंचने की अनुमति नहीं है, तो मैं उसी पृष्ठ पर रीडायरेक्ट करता हूं लेकिन एक? Alttemplate = प्रतिबंधित पृष्ठ या क्वेरी स्ट्रिंग में समान जोड़ता हूं। (सुनिश्चित करें कि आपकी अनुमतियां मैक्रो क्वेरी स्ट्रिंग में एक alttemplate = प्रतिबंधित पृष्ठ के लिए जांचती है, या आप रीडायरेक्ट के अनंत लूप में समाप्त हो जाएंगे।)

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