मैं केवल एएसपी.नेट एमवीसी के लिए एक नवागंतुक हूं और मुझे यकीन नहीं है कि एक निश्चित कार्य को "सही तरीके" कैसे प्राप्त किया जाए।एएसपी.नेट एमवीसी प्राधिकृत एट्रिब्यूट एक्शन मोड में मूल्य गुजर रहा है?
अनिवार्य रूप से, मैं लॉग इन उपयोगकर्ता को HttpContext.User.Identity में संग्रहीत करता हूं और कुछ कस्टम प्रमाणीकरण करने के लिए EnhancedAuthorizeAttribute
लिखा है।
ओवर्रिडन OnAuthorization
विधि में, मेरा डोमेन मॉडल डाटाबेस को हिट करता है यह सुनिश्चित करने के लिए कि वर्तमान उपयोगकर्ता आईडी मार्ग में पारित हो सकता है "बैचकोड"। प्रोटोटाइप है:
ReviewGroup GetReviewGroupFromBatchCode(string batchCode);
यह अशक्त वापस आ जाएगी, तो उपयोगकर्ता ReviewGroup और OnAuthorization उपयोग नहीं कर सकते तो पहुँच से इनकार करते हैं।
अब, मुझे पता है कि सजाए गए एक्शन विधि को केवल प्राधिकृत होने पर ही निष्पादित किया जाएगा, लेकिन मैं फिर से समीक्षा समूह प्राप्त करने के लिए डेटाबेस को दूसरी बार हिट नहीं करना चाहता हूं।
मैं HttpContext.Items["reviewGroup"]
में समीक्षा समूह को संग्रहीत करने और इस समय नियंत्रक से इसे एक्सेस करने के बारे में सोच रहा हूं।
क्या यह एक व्यवहार्य समाधान है, या मैं गलत रास्ते पर हूं?
धन्यवाद!
ठीक है, मुझे एक से अधिक अनुरोधों के लिए समीक्षा समूह ऑब्जेक्ट की आवश्यकता नहीं है। असल में, मुझे इस ऑब्जेक्ट को पास करना है (AuthorizeAttribute.OnAuthorization() में प्राप्त किया गया है ActionMethod() पर। –