हमने कोड विकसित किया है जो मूल रूप से किसी इकाई पर उपयोगकर्ता की अनुमतियों के लिए डेटा देता है। उदाहरण के लिए, एक इकाई निम्न में से एक हो सकता है:उपयोगकर्ता अनुमतियों को संग्रहीत करने के लिए उपयोग करने के लिए डेटाटाइप
-Company
-Contact
-Project
-Issue etc...
हम तो नीतियों असाइन कर सकते हैं (और एक व्यक्ति एक से अधिक नीतियों प्राप्त कर सकते हैं) है कि एक उपयोगकर्ता कोई कार्रवाई करने के लिए अनुमति देते हैं:
-Create
-Edit
-Delete
-Export
तो मूल रूप से एक नीति कह सकती है कि उपयोगकर्ता ए को कंपनी बनाने का अधिकार है, लेकिन एक और नीति जो इस उपयोगकर्ता ने कहा है कि उसे कंपनी बनाने का अधिकार नहीं है। इस मामले में हम ऐसे अधिकार लेते हैं जो उन अधिकारों से पहले अनुमति देते हैं जो अनुमति नहीं देते हैं। इस उदाहरण में, उसे एक कंपनी बनाने की अनुमति होगी।
तो बुनियादी तौर पर आप तो जैसे डेटा के साथ अंत:
Policy1 Company Create Yes
Policy1 Company Edit Yes
Policy1 Company Delete No
Policy2 Company Create No
Policy2 Company Edit Yes
Policy2 Company Delete No
मैं एक प्रश्न जो हम नियमों हम चर्चा के आधार पर इस उपयोगकर्ता की अनुमति है क्या वापस जाने के लिए उपयोग किया है।
इस मामले क्वेरी चलाने में परिणाम होगा:
Company create yes
Company edit yes
Company delete no
हमारे एप्लिकेशन सिर्फ एक बिट हाँ/नहीं है कि क्या के लिए वे कार्रवाई या नहीं प्रदर्शन कर सकते हैं नहीं है। हमारे पास केवल हां/नहीं/मालिक है (रिकॉर्ड के लिए जिन्हें केवल स्वामी द्वारा ही संपादित/हटाया जाना चाहिए। हमारी क्वेरी बहुत अच्छी है और सही डेटा लौटा रही है।
मेरा प्रश्न यह है कि मैं सी # में किस डेटा प्रकार का उपयोग करना चाहिए मूल रूप से कहते हैं:
एक इकाई (कंपनी) को देखते हुए एक कार्रवाई (बनाने) मूल्य है क्या मूल रूप से दिन के अंत में मैं एक मैट्रिक्स है कि इस तरह दिखता है का निर्माण करना चाहते दिया:।
Create Edit Delete
Company Yes Owner Only Yes
Contact No No No
Project Yes Yes Owner Only
पहले कॉलम पर पंक्तियां इकाई का प्रतिनिधित्व करती हैं, उसके बाद कॉलम क्रियाओं का प्रतिनिधित्व करते हैं (बनाएं, संपादित करें, हटाएं)। उदाहरण के लिए 2 का संयोजन सूचकांक: [Company][Create] = Yes
आपको इकाई के आधार पर कार्रवाई का अधिकार देगा।
तो क्या डेटाटाइप इस मॉडल को फिट करता है जहां मैं कुछ इंडेक्स कर सकता हूं जैसे: [Contact][Edit]=No
। हमें किसी ऑब्जेक्ट और एक्शन के आधार पर परिणाम प्राप्त करने के लिए इस ऑब्जेक्ट को सत्र करना होगा (शायद गतिशील रूप से)।
मैंने सोचा कि सत्र अच्छा होगा ताकि उपयोगकर्ता एक बार और केवल एक बार उपयोगकर्ता लॉग आउट होने तक जांच कर सकें।