सारांश में डेटा-आधारित प्रमाणीकरण: मुझे केवल यूआरएल की क्वेरी स्ट्रिंग में मौजूद डेटा के आधार पर पृष्ठों को अधिकृत करने की आवश्यकता है, न केवल पृष्ठ का नाम।एएसपी.नेट
पृष्ठभूमि:
चलो कहते हैं कि मैं एक पुस्तकालय सूची प्रणाली के निर्माण कर रहा हूँ करते हैं। उपयोगकर्ताओं को एक व्यवस्थापक या उपयोगकर्ता भूमिका में एक पुस्तकालय में बनाया और असाइन किया जा सकता है। उसी डेटाबेस में सैकड़ों प्रतिस्पर्धी पुस्तकालय हैं, इसलिए यह सुनिश्चित करना महत्वपूर्ण है कि एक लाइब्रेरी के उपयोगकर्ता अन्य लाइब्रेरी से सूची नहीं देख सकें।
अभी मैं एक सुंदर मानक एएसपी.NET सेटअप का उपयोग कर रहा हूं: SqlMembershipProvider का उपयोग कर प्रपत्र प्रमाणीकरण। Web.config में <authorization>
अनुभागों के माध्यम से कॉन्फ़िगर किया गया SqlRoleProvider का उपयोग कर प्राधिकरण। अनधिकृत पृष्ठों को छिपाने के लिए साइटमैप प्रदाता के साथ सुरक्षा ट्रिमिंग।
लीकिंग से सूची जानकारी को नियंत्रित करने के लिए, मैं मैन्युअल रूप से प्रत्येक इन्वेंट्री क्वेरी के साथ उपयोगकर्ता की सहयोगी लाइब्रेरी आईडी की जांच कर रहा हूं। यह काम करता है, लेकिन यह कठिन है और त्रुटियों के लिए प्रवण है। कोई बेहतर तरीका ज़रूर होगा।
प्रश्न:
अब उपयोगकर्ताओं को एक पुस्तकालय के भीतर मनमाना "संग्रह" बनाने की क्षमता है। (उदाहरण के लिए संग्रह ए में पुस्तकें 1, 2, & 3 है।) व्यवस्थापक केवल संपूर्ण पुस्तकालय में नहीं, व्यक्तिगत संग्रह पर व्यवस्थापक/उपयोगकर्ता पहुंच प्रदान करने की क्षमता चाहते हैं।
तो, यदि कोई उपयोगकर्ता www.com/Book.aspx?BookId=1
पर जाता है, तो सिस्टम को यह सुनिश्चित करने की आवश्यकता होती है कि उपयोगकर्ता को संग्रह के लिए अनुमति है कि "पुस्तक 1" पृष्ठ दिखाने से पहले है। अगर वे www.com/Reviews.aspx?ReviewId=23 पर जाते हैं, तो मुझे यह सुनिश्चित करना होगा कि समीक्षा उस पुस्तक के लिए है जो उस संग्रह में है जिसे उन्हें देखने की अनुमति है।
1) मैं इसे सबसे मानक एएसपी.NET तरीके से कैसे कार्यान्वित कर सकता हूं?
आधार पृष्ठ के भीतर मैन्युअल जांच?
एक कस्टम HttpModule?
एक कस्टम भूमिका प्रदाता?
मुझे व्यवस्थापक/उपयोगकर्ता अनुमतियों को संग्रहीत करने में रुचि नहीं है, बल्कि उन अनुमतियों के आधार पर अधिकृत/कैसे प्राधिकृत करें। (कैसे उन में से किसी को लागू करने पर उदाहरण की सराहना कर रहे हैं)
2) आगे यह जटिल करने के लिए, मैं अभी भी था सुरक्षा करता है, तो उपयोगकर्ता किसी भी संग्रह या लाइब्रेरी व्यवस्थापक अधिकार है की जाँच करें और व्यवस्थापक को छिपाने के लिए ट्रिमिंग की तरह पेज अगर वह नहीं करता है।
+1 आपके प्रश्न को इतनी अविश्वसनीय रूप से स्वरूपित करने के लिए +1! – user279521
@ उपयोगकर्ता 279521: धन्यवाद :) – Greg