2013-09-27 3 views
7

क्या कोई यह समझा सकता है कि प्राधिकृत विशेषता जीवन चक्र कक्षा या विधि के सापेक्ष प्रबंधित क्यों प्रतीत होता है? यह अनुरोध जीवन चक्र के सापेक्ष प्रबंधित होने का विरोध है।प्राधिकृत विशेषता लाइफसाइक्ल

यदि मैं कक्षा स्तर पर नियंत्रक को सजाने के लिए प्राधिकृत गुण रचनाकार केवल एक ही नियंत्रक को एकाधिक अनुरोधों में एक बार बुलाया जाता है। यदि मैं प्रत्येक नियंत्रक विधि को सजाने के लिए करता हूं तो मुझे प्रत्येक नियंत्रक विधि के लिए नई प्राधिकृत विशेषता कन्स्ट्रक्टर कॉल मिलती है।

इस व्यवहार के बारे में क्या सब कुछ है? मैं उम्मीद करता हूं कि अधिकृत अनुरोध सृजन प्रत्येक अनुरोध के लिए होगा।

+0

आप कैसे निर्धारित कर रहे हैं कि कक्षा में लागू होने पर इसे केवल एक बार बुलाया जाता है? AFAIK, नियंत्रक को तत्काल और प्रत्येक अनुरोध के साथ नष्ट कर दिया जाता है। यह * होना * है, या आप क्रॉस-अनुरोध प्रदूषण के साथ समाप्त हो जाएगा। यह संभव है कि विजुअल स्टूडियो में डिबगिंग करते समय यह किसी कारण से इसे रोकता है, लेकिन यदि आप असली आईआईएस पर हर अनुरोध के लिए एक ही नियंत्रक उदाहरण के साथ समाप्त हो रहे हैं, तो एक समस्या है। –

+0

क्रिस, मैं नियंत्रक के जीवन चक्र के बारे में बात नहीं कर रहा था। इसके बजाय, मैं AuthorizeAttribute के जीवन चक्र के बारे में पूछ रहा हूं। AuthorizeAttribute प्रत्येक अनुरोध के लिए नहीं बनाया गया है, और मुझे उम्मीद है कि यह होना चाहिए। दुर्भाग्यवश, इससे इस वर्तमान एप्लिकेशन के लिए कुछ मुद्दों का कारण बनता है क्योंकि हमें रनटाइम पर भूमिकाओं को संशोधित करना होगा। – Daniel

उत्तर

8

एएसपी.नेट एमवीसी एक्शनफिल्टर को कैश करेगा और बाद के अनुरोधों पर उनका पुन: उपयोग करने का प्रयास करेगा। वास्तविक प्रमाणीकरण प्रत्येक अनुरोध पर होगा लेकिन निर्माता को केवल पहले ही बुलाया जाएगा। आपको एक्शनफिल्टर में किसी आंतरिक स्थिति को बनाए रखना नहीं चाहिए।

संबंधित मुद्दे