यहां मेरा परिदृश्य है। मैंने एक ऐसा एप्लिकेशन बनाया जो काम करने के लिए एकीकृत विंडोज प्रमाणीकरण का उपयोग करता है। Application_AuthenticateRequest()
में, मैं अपनी वेबसाइट के उपयोगकर्ता के वर्तमान WindowsPrincipal
प्राप्त करने के लिए HttpContext.Current.User.Identity
का उपयोग करता हूं।आईआईएस मेरे आवेदन पर पुराने उपयोगकर्ता नाम लौट रहा है
अब यहां मजाकिया हिस्सा है। हमारे कुछ उपयोगकर्ताओं ने हाल ही में शादी कर ली है, और उनके नाम बदल गए हैं। (यानी उपयोगकर्ता का एनटी लॉगिन jsmith
से jjones
से बदलता है) और जब मेरा एप्लिकेशन उन्हें प्रमाणित करता है, तो आईआईएस मुझे अपना पुराना लॉग इन पास करता है। मैं jsmith
को तब तक देख रहा हूं जब तक कि मैं अपने सर्वर को रीबूट नहीं करता! क्लाइंट को लॉगिंग करना काम नहीं करता है। ऐप पूल को पुनरारंभ करना काम नहीं करता है। केवल एक पूर्ण रीबूट।
क्या किसी को पता है कि यहां क्या हो रहा है? क्या मुझे कुछ समस्या है जो मैं इस समस्या को दूषित करने के लिए उपयोग कर सकता हूं? क्या मेरा सर्वर गलत कॉन्फ़िगर किया गया है?
नोट: मैं निश्चित रूप से आईआईएस, मेरे एप्लिकेशन पूल या मशीन को पुनरारंभ नहीं करना चाहता हूं। चूंकि यह एक उत्पादन बॉक्स है, ये वास्तव में व्यवहार्य विकल्प नहीं हैं।
शौकीन चावला -
हाँ, उनके UPN अपने लॉगिन नाम के साथ बदल गया था। और मार्क/निक ... यह एक उत्पादन उद्यम सर्वर है ... इसे सिर्फ रीबूट नहीं किया जा सकता है या आईआईएस पुनरारंभ नहीं किया जा सकता है।
(भावी पीढ़ी के लिए) ऊपर का पालन करें:
Grhm के जवाब स्पॉट पर था। यह समस्या निम्न-वॉल्यूम सर्वर में पॉप अप होती है जहां आपके पास अपने अनुप्रयोगों का उपयोग करने वाले बहुत से लोग नहीं हैं, लेकिन उपयोगकर्ताओं की पहचान को कैश में रखने के लिए पर्याप्त अनुरोध किए जाते हैं। जो वर्णन करने के लिए क्यों कैश आइटम 10 मिनट के डिफ़ॉल्ट के बाद ताज़ा नहीं है लगता है KB का महत्वपूर्ण हिस्सा है:
कैश प्रविष्टियों समय बाहर करते हैं, लेकिन संभावना है कि अनुप्रयोगों के द्वारा प्रश्नों आवर्ती मौजूदा रख रहे हैं कैश प्रविष्टि के अधिकतम जीवनकाल के लिए कैश प्रविष्टि जिंदा है।
मैं बिल्कुल यकीन है कि क्या हमारे कोड में यह (आवर्ती क्वेरी) पैदा कर रहा था नहीं कर रहा हूँ, लेकिन संकल्प जो हमारे लिए काम किया बस कुछ करने के लिए 1 सप्ताह के उचित रूप में अश्लील डिफ़ॉल्ट से LsaLookupCacheExpireTime
मूल्य कटौती करने के लिए था घंटे। यह, हमारे लिए, संभावना है कि उपयोगकर्ता वास्तविक दुनिया में अनिवार्य रूप से शून्य के लिए प्रभावित होगा, और फिर भी एक ही समय में हमारे निर्देशिका सर्वर के खिलाफ एसआईडी-नाम लुकअप की चरम संख्या का कारण नहीं बनता है। एक बेहतर समाधान आईएमओ होगा यदि अनुप्रयोगों ने उपयोगकर्ता डेटा को टेक्स्टुअल लॉगिन नाम पर मैप करने के बजाय एसआईडी द्वारा उपयोगकर्ता की जानकारी देखी। (ध्यान दें, विक्रेताओं! यदि आप अपने आवेदन में एडी प्रमाणीकरण पर भरोसा कर रहे हैं, तो आप एसआईडी को अपने प्रमाणीकरण डेटाबेस में रखना चाहते हैं!)
को पुनरारंभ नहीं करना चाहते हैं यह बहुत ही बढ़िया है। यह होना चाहिए। मैं हमेशा के लिए इस KB आलेख की खोज कर रहा था, और इसे कभी नहीं मिला। –