iis NTLM का उपयोग करके प्रत्येक अनुरोध के लिए 401 प्रतिक्रिया से बचें




iis-6 http-status-code-401 (6)

हमारे पास एनटीएलएम आधारित विंडोज प्रमाणीकरण का उपयोग कर एएसपीनेट 3.5 एप्लिकेशन है। यह प्रणाली एक निजी नेटवर्क पर चलती है जो वास्तव में विभिन्न भौगोलिक स्थानों (वीपीएन के माध्यम से जुड़ा हुआ) पर वितरित होती है।

अब हम वेबसाइट के प्रदर्शन को अनुकूलित करने की कोशिश कर रहे हैं। चूंकि एनटीएलएम काम करता है, आईआईएस के लिए हर नए अनुरोध को 3 अलग-अलग अनुरोधों के साथ बनाया गया है जबकि पहला 2 401 प्रतिक्रिया है। हम केवल इन सत्रों की शुरुआत को सत्र की शुरुआत में कम करने की कोशिश कर रहे हैं। हमें this समाधान मिला। दुर्भाग्यवश यह कुछ भी नहीं बदला और हम इस 401 प्रतिक्रिया (जो समय का उपभोग करते हैं) प्राप्त करते रहते हैं।

यातायात को देखने के लिए मैंने पहले फिडलर ऐप का इस्तेमाल किया था। किसी भी तरह, जब मैं फिडलर का उपयोग करता हूं, सत्र की शुरुआत में बिल्कुल 1 प्रमाणीकरण प्रक्रिया होती है (जैसा कि मेरी इच्छा है), लेकिन जब मैं फिडलर को बंद करता हूं और वायरशर्क के माध्यम से यातायात की जांच करता हूं तो मैं देख सकता हूं कि मेरे पास अभी भी प्रत्येक अनुरोध के लिए यह 401 प्रतिक्रिया है ।

प्रयुक्त क्लाइंट आईई 6, आईआईएस संस्करण 6 हैं।

क्या कोई सलाह दे सकता है?


केवल एकमात्र तरीका है कि एनटीएलएम का उपयोग केवल लॉगिन पेज पर करें और here कुकी का उपयोग here


साइट के लिए आईई 6 पर यह आपकी सुरक्षा सेटिंग्स हो सकती है। स्थानीय इंट्रानेट या भरोसेमंद साइट में बदलने का प्रयास करें।


एनटीएलएम / वार्तालाप, अन्य सभी HTTP प्रमाणीकरण योजनाओं के विपरीत, कनेक्शन उन्मुख प्रोटोकॉल हैं।

आईआईएस में, विभिन्न सेटिंग्स हैं जो नियंत्रित करती हैं कि पहले प्रमाणीकृत कनेक्शन (जैसे AuthPersistSingleRequest) पर सभी अनुरोधों के लिए प्रमाणीकरण की मांग की जाएगी। उस सेटिंग के स्वतंत्र, मेरा मानना ​​है कि POIS अनुरोध करते समय आईआईएस स्वचालित रूप से पुन: प्रमाणीकरण की मांग करेगा।

यदि आपका सर्वर कनेक्शन पुन: उपयोग में हानि कर रहा है (उदाहरण के लिए कनेक्शन भेजकर: प्रतिक्रियाओं में करीबी शीर्षलेख) आपको इसे ठीक करना होगा क्योंकि अन्यथा पुन: प्रमाणीकरण होगा। आप फिडलर का उपयोग करके ऐसे प्रमाणीकरण-पुन: उपयोग करने वाले हेडर का आसानी से जांच सकते हैं।


संबंधित विषय पर; यदि आप IIS7.0 और केर्बेरो प्रमाणीकरण का उपयोग कर रहे हैं तो ऐसा लगता है कि प्रत्येक अनुरोध के लिए 401 राउंड-ट्रिप से बचने के लिए AuthPersistNonNTLM = true का उपयोग किया जा सकता है।

http://msdn.microsoft.com/en-us/library/aa347548(VS.90).aspx

http://blogs.technet.com/b/configurationmgr/archive/2010/06/03/solution-you-may-experience-slow-performance-when-using-bits-and-kerberos-authentication-on-configmgr-2007-distribution-points.aspx


क्या आपने इसे अपने डोमेन में आजमाया है?

setspn -a FQDNServerName applicationPoolServiceAccount
setspn -a biosServerName applicationPoolServiceAccount

यह एप्लिकेशन पूल को एनटीएलएम ऑथ अनुरोधों की सेवा करने की अनुमति देता है।


मेरी भी यही समस्या है! मैं आपके जैसा ही वातावरण उपयोग कर रहा हूं। सिवाय इसके कि मैं फिडलर में 2 401 भी देखता हूं। मैंने उस समस्या पर कुछ दिन बिताए और फिर बस इसे छोड़ दिया। ऑथपर्सिस्टेंस ने मेरे लिए भी काम नहीं किया। लेकिन यहां दिए गए लिंक हैं, शायद वे आपके मामले में काम करेंगे।

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

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

http://technet.microsoft.com/en-us/library/cc786094.aspx

http://technet.microsoft.com/en-us/library/cc786094.aspx

मैंने वर्चुअल निर्देशिका और वेबसाइट स्तर दोनों पर ध्वज सेट करने का प्रयास किया, लेकिन इससे मदद नहीं मिली। क्या आप उन गुणों को संपादित करने के लिए आईआईएस मेटाबेस एक्सप्लोरर का उपयोग कर रहे हैं? यह गुणों को संपादित करने का क्लीनर तरीका है और XML फ़ाइल को सीधे संपादित करने से अधिक मदद कर सकता है।

समस्या को बाधित करने का एक तरीका उन संसाधनों के लिए HTTP प्रतिक्रिया में कैश-कंट्रोल हैडर डालना है जो किसी भी पृष्ठ पर अक्सर परिवर्तित नहीं होने जा रहे हैं। मेरे मामले में, मैंने सीएसएस को कैश किया (बाहरी सीएसएस जितना संभव हो सके इसे अनुकूलित करने के लिए उपयोग करें), जेएस और आईएमजी फाइलें। चूंकि मेरे पास इन प्रकार की 60 फाइलें हैं जो हमारे होमपेज पर लोड हो जाती हैं, इसलिए हम लगभग 120 401 त्रुटियों को तुरंत खत्म करने में सक्षम थे!

सुनिश्चित करें कि आप कैश-कंट्रोल हेडर का उपयोग करते हैं और यदि संशोधित या ई-टैग आधारित कैशिंग नहीं है, तो फाइलें कैश होने पर भी 401 और 304 उत्पन्न हो जाएंगी।





http-status-code-401