मेरे पास फॉर्म प्रमाणीकरण है और मुझे HttpContext.Current.User और थ्रेड में संग्रहीत करने के लिए एक कस्टम ऑब्जेक्ट की आवश्यकता है। CurrentPrincipal।PostAuthenticateRequest कई बार आग लगती है
इस पाने के लिए, मैं PostAuthenticateRequest घटना के लिए, तो फिर मैं कस्टम IPrincipal और IIdentity वस्तुओं का दृष्टांत और आवंटित सुनने डीबी से सभी उपयोगकर्ता डेटा मैं HttpContext.Current.User में और Thread.CurrentPrincipal में संग्रहित किया जा करने की जरूरत है पढ़ा है, उन्हें उपरोक्त स्थानों पर।
समस्या यह है कि किसी कारण से PostAuthenticateRequest एक ही अनुरोध .. यह अनावश्यक डीबी roundtrips कि चोट प्रदर्शन का कारण बनता है के लिए कई बार आग ..
मैं यह कैसे करना चाहिए है? (एएसपी.नेट एमवीसी 2)
धन्यवाद।
ओह, हाँ! संसाधनों और आदि के साथ बात मेरे दिमाग फिसल गया !!! ताज़ा करने के लिए धन्यवाद! मैंने पहले से ही कैशिंग माना है। लेकिन यह भी प्रभाव के साथ चला जाता है। उदाहरण के लिए, मैंने डीबी से पढ़ा और प्रिंसिपल उपयोगकर्ता की अनुमतियों में स्टोर किया। यदि व्यवस्थापक उपयोगकर्ता के लिए अनुमति बदलने का निर्णय लेता है तो कैश में होने पर यह बहुत अच्छा विचार नहीं है - कैश किए गए उपयोगकर्ता की अनुमतियां तब तक अपडेट नहीं की जाएंगी जब तक उपयोगकर्ता लॉग ऑन/लॉग ऑन नहीं करता .. आपको "संक्षिप्त" कैशिंग के साथ अपना विचार करने की आवश्यकता है। ऐसा लगता है कि यह बिल फिट होना चाहिए .. बहुत बहुत धन्यवाद! – Ant
आप वर्तमान उपयोगकर्ता के लिए पेज_इनिट पर कैश अपडेट कर सकते हैं। फिर इसे पृष्ठ प्रति अनुरोध केवल एक बार डीबी से पुनः लोड किया जाएगा। किसी भी अन्य रिसोर्स से अनुरोध करने से पहले यह हमेशा होता है क्योंकि पृष्ठ अभी तक प्रस्तुत नहीं किया गया है। –