2009-12-03 7 views

उत्तर

12

सबसे बड़ा अंतर यह है कि उन्हें समान नहीं होना चाहिए।

आम तौर पर, HttpContext.Current.User लॉगऑन उपयोगकर्ता है जबकि Thread.CurrentPrincipal कार्यकर्ता प्रक्रिया पहचान है।

आईआईएस 5.x पर, डिफ़ॉल्ट रूप से Thread.CurrentPrincipal एएसपीएनईटी है। आईआईएस 6 और ऊपर, Thread.CurrentPrincipal डिफ़ॉल्ट रूप से नेटवर्क सेवा या एप्लिकेशन पूल खाता है।

जटिल बनाने के लिए, यदि आप एएसपी.NET प्रतिरूपण सक्षम करते हैं, तो वे दोनों लॉगऑन उपयोगकर्ता के समान होंगे। :)

प्रयास करें, इस विषय और माइक्रोसॉफ्ट MSDN लेख पर वास्तव में कुछ अच्छे पुस्तकों को पढ़ने के

http://msdn.microsoft.com/en-us/library/ms998351.aspx

एक और सुझाव वर्कर प्रोसेस करने के लिए देते हैं और क्रम में उन की जाँच करने के एक डिबगर उपयोग करने के लिए है। यह आपको एक बेहतर रूप दे सकता है।

2

एक और बड़ा अंतर यह है कि आपके कोड को हमेशा HttpContext तक पहुंच नहीं है। (उदाहरण के लिए यदि आपके पास अपने सभी बीएल एक असेंबली में हैं जो वेब एप्लिकेशन से उपयोग किए जा सकते हैं या नहीं भी हो सकते हैं) यदि आप थ्रेड.कुरेंट प्रिंसिपल का उपयोग करते हैं तो वे दो उपयोगकर्ता खाते अलग-अलग हो सकते हैं, तो आपका कोड हमेशा प्राप्त करने में सक्षम होगा उस उपयोगकर्ता ऑब्जेक्ट पर कोई फर्क नहीं पड़ता कि आप अपने कोड में कहां हैं।

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