2010-06-25 14 views
5

मैं अपने आवेदन के लिए .NET mvc2 का उपयोग कर रहा हूं। मैं अपने कार्यों पर कुछ कस्टम प्राधिकरण चाहता हूं। मैंने थोड़ा गुस्सा किया है और दो विकल्प उपलब्ध हैं।प्राधिकरण फ़िल्टर बनाम एक्शन फ़िल्टर

  • कस्टम कार्रवाई फ़िल्टर में onActionExecuting में तर्क को लागू करें, see this post
  • उपवर्ग authorizeattribute या Iauthorization इंटरफ़ेस को लागू है और वहाँ मेरी तर्क डाल

मेरे यहां सवाल यह है कि जो तकनीक पेशेवरों और के विपक्ष के साथ बेहतर है प्रत्येक तकनीक का उपयोग

संपादित: इसके अलावा मैं अपने बेस नियंत्रक में क्रिया निष्पादन और प्राधिकरण पर ओवरराइड कर सकता हूं जो मुझे नियंत्रक चर का उपयोग करने का लाभ देता है y।

+0

क्या आपको कोई प्रो और विपक्ष मिला? अभी मैं एक ही प्रश्न से निपट रहा हूं। आपका समाधान क्या था? –

+0

ऑनएक्शनएक्सिंगिंग का उपयोग करके आपको निजी सदस्यों तक पहुंचने का लाभ भी मिलता है। जबकि फ़िल्टर में आपको शायद केवल सार्वजनिक गुणों और विधियों तक पहुंच है। मैंने AuthorizeAttribute के उप-वर्ग का उपयोग किया क्योंकि यह वही है जो आपको इसके लिए चिंतित करता है और आपको चिंताओं को साफ करता है –

उत्तर

3

हालांकि ये दोनों ही विकल्पों में ठीक हैं, यह इन कारणों के लिए AuthorizeAttribute उपवर्ग के लिए सबसे अच्छा है:

  1. चिंताओं का पृथक्करण।
  2. एमवीसी इस उद्देश्य के लिए AuthorizeAttribute प्रदान करता है (ढांचे से लड़ें नहीं)।
  3. प्राधिकरण फ़िल्टर पहले चलाया जाता है - अन्य फ़िल्टर (प्रति प्रो एएसपी.नेट एमवीसी 3 फ्रेमवर्क, पृष्ठ 431) से पहले। यह सुनिश्चित करता है कि कोई अनधिकृत उपयोगकर्ता आपके नियंत्रक/कार्रवाई को हिट करता है तो कोई अनावश्यक कोड निष्पादित नहीं होगा।
संबंधित मुद्दे