2009-04-23 23 views
18

मैं करने के लिए "व्यवस्थापक, सामग्री संपादकों"ASP.NET MVC भूमिकाओं प्राधिकरण

[Authorize(Roles = "Administrators, Content Editor")] 

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

नोट: मुझे पता है कि मैं उपरोक्त प्राधिकृत विशेषता के साथ प्रत्येक कार्रवाई को अन्य क्रियाओं को सजाने सकता हूं लेकिन मैं हर समय ऐसा नहीं करना चाहता हूं। मैं चाहता हूं कि सभी नियंत्रक कार्रवाइयां डिफॉल्ट रूप से अपरिहार्य हों ताकि अगर कोई कोई कार्रवाई जोड़ता है तो उन्हें आम जनता को उपलब्ध कराने का निर्णय लिया जाना चाहिए।

+0

संभव डुप्लिकेट http://stackoverflow.com/questions/780436 के लिए है/asp-mvc-authorize-all-actions-remove-a-few) – Matt

+1

तो क्या आप कुछ ऐसा चाहते हैं [http://stackoverflow.com/questions/780436 ](httpoverflow.com/questions/780436) ? – dave

+0

यूप - सही दिखता है ... इच्छा है कि यह std नियंत्रकों के लिए अंतर्निहित था लेकिन कोड के लिए एक बड़ा प्रयास नहीं है। मुझे जोड़ने के लिए धन्यवाद। –

उत्तर

0

एकमात्र समाधान जिसे मैं अब तक सोच सकता हूं, एक और नियंत्रक को बनाना और पंजीकरण करना है ताकि मेरे पास अज्ञात पहुंच के लिए एक हो और एक अधिकृत पहुंच के लिए, लेकिन यह उतना ही सुरुचिपूर्ण नहीं है जितना मुझे पसंद आएगा।

4

आप क्रिया विधियों पर प्राधिकृत विशेषता डाल सकते हैं। कक्षा स्तर पर नहीं।

तो, नियंत्रक वर्ग से विशेषता को केवल उन क्रिया विधियों तक ले जाएं जिन्हें आप सुरक्षित करना चाहते हैं।

+1

हाय कियरन, प्रतिक्रिया के लिए धन्यवाद। जैसा कि मेरे प्रश्न के नोट हिस्से ने कहा है कि मुझे पता है कि यह संभव है लेकिन मैं प्राधिकरण कार्यों के लिए डिफ़ॉल्ट रूप से प्राधिकृत विशेषता के साथ उन्हें सजाने के बिना डिफ़ॉल्ट नहीं करना चाहता हूं। –

+0

मुझे लगता है कि यह सबसे अच्छा जवाब है। –