2012-09-20 15 views
5

मैं इस प्रश्न को कुछ हफ्तों के लिए Google के माध्यम से हल करने और एसओ पढ़ने के लिए प्रयास कर रहा हूं, और बहुत भाग्य नहीं था, इसलिए मैंने सोचा कि मैं अंततः खुद से पूछने की कोशिश करूंगा ।एएसपी.नेट विंडोज प्रमाणीकरण काम नहीं कर रहा है/प्रमाण पत्र स्वीकार नहीं कर रहा है

मैं आंतरिक उपयोगकर्ताओं के लिए कुछ जानकारी उत्पन्न करने के लिए हमारे इंट्रानेट पर एक बहुत ही सरल, ASP.NET साइट स्थापित कर रहा हूं। मैं अज्ञात पहुंच के बजाए विंडोज प्रमाणीकरण का उपयोग कर रहा हूं, क्योंकि उपयोगकर्ता द्वारा साइट पर कौन सा उपयोगकर्ता हिट करता है, मैं अलग-अलग जानकारी उत्पन्न करूँगा।

लंबी कहानी छोटी, यह मेरे स्थानीय Windows 7 मशीन पर परीक्षण करने में पूरी तरह से काम करती है जहां मैंने एप्लिकेशन विकसित किया था। हालांकि, Windows 2008 R2 server से जहां मैं इसे निवास करना चाहता हूं, जब मैं साइट पर हिट करता हूं तो मुझे अपने क्रेडेंशियल्स के लिए एक पॉप-अप मिलता है, और यहां तक ​​कि अगर मैं उन्हें दर्ज करता हूं तो यह मुझे बार-बार पूछता है। यह तब भी होता है जब मैं साइट को दूरस्थ रूप से या स्थानीय रूप से मार रहा हूं। यदि मैं अनाम पहुंच का उपयोग करने का प्रयास करता हूं तो मैं साइट पर दोनों तरीकों तक पहुंच सकता हूं लेकिन जैसा कि मैं उपयोगकर्ता की पहचान नहीं कर सकता, मैं उस जानकारी को उत्पन्न नहीं कर सकता जिसे मैं प्रदान करना चाहता हूं।

नोट्स:

  1. आईआईएस में, मैं विंडोज प्रमाणीकरण और ASP.NET प्रतिरूपण साइट के लिए सक्षम है। बाकी सब कुछ अक्षम है।

  2. इसे समझने के लिए, वर्तमान में मेरे पास सभी उपयोगकर्ताओं को अनुमति देने के लिए web.config सेट है और मैं इनकार नहीं कर रहा हूं।

  3. मेजबान/यूआरएल मैं इसके लिए उपयोग कर रहा हूँ toolName.organization.local है
  4. मैं चिंतित था कि यह 2008 R2 सर्वर व्यवस्थापक उपयोगकर्ता एक अलग डोमेन में रहने वाले फिर मेरे दूरस्थ उपयोगकर्ता का एक मुद्दा था कि मैं परीक्षण कर रहा था लेकिन फिर से यह स्थानीय रूप से काम नहीं करता है।
  5. AppHost फ़ाइल में, मेरे पास वर्तमान में विंडोज प्रमाणीकरण सक्षम है।

      <windowsAuthentication enabled="true"> 
          <providers> 
           <add value="Negotiate" /> 
           <add value="NTLM" /> 
          </providers> 
          </windowsAuthentication> 
    

वैसे, मैं आम तौर पर रूपों प्रमाणीकरण हमारे अन्य आंतरिक सभी साइटों के लिए इस सर्वर पर उपयोग करती हैं इसलिए मैं खिड़कियों प्रमाणीकरण और इस मुद्दे पर एक सा नया हूँ। इस बिंदु पर मुझे यकीन नहीं है कि आगे क्या प्रयास करें या जांचें, इसलिए कोई सलाह उपयोगी होगी। धन्यवाद।

+1

आप इस निदान उपकरण को आजमाएं: http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/delegconfig-delegation-configuration-reporting-tool.aspx? पोस्ट की तारीख को अनदेखा करें, प्रतिक्रिया के लिए धन्यवाद v7.0/7.5 संस्करण – MatthewMartin

उत्तर

2

सबसे पहले, आपको एहसास होना चाहिए कि विंडोज पासथ्रू प्रमाणीकरण केवल इंटरनेट एक्सप्लोरर के साथ काम करता है, और फिर तभी साइट विश्वसनीय साइट्स या इंट्रानेट साइट सुरक्षा समूह में होती है। फ़ायरफ़ॉक्स, क्रोम, आदि .. हमेशा प्रमाण पत्र के लिए संकेत देंगे।

ऐसा कहकर, आपके पास कुछ समस्याएं हैं।

आप

अगर आप एप्लिकेशन को उपयोगकर्ता के संदर्भ में चलाना चाहते हैं आप तय करना चाहिए, जिस स्थिति में आप भी एक <identity impersonat="true"/> टैग की आवश्यकता होगी अपने web.config में एक <authentication mode="Windows" /> तत्व होना चाहिए। यदि नहीं, तो यह गलत होना चाहिए (हालांकि यह डिफ़ॉल्ट है)।

यदि आपके पास साइट प्रमाणीकरण द्वारा पूरी तरह से संरक्षित है तो आपको अपने web.config में कोई प्राधिकरण नियमों की आवश्यकता नहीं है।

+0

है। मेरे पास आपके द्वारा सुझाए गए प्रमाणीकरण मोड सेट हैं और केवल आईई के माध्यम से साइट तक पहुंचने का प्रयास करें। मैंने परीक्षण के लिए प्राधिकरण अनुभाग पर टिप्पणी की है। मैं ऐप को उपयोगकर्ता के संदर्भ में चलाने के लिए चाहता हूं लेकिन मुझे पूरा यकीन नहीं है कि आपका मतलब "टैग" से क्या है। अभी तक मैं अभी भी वही प्राप्त कर रहा हूं, क्रेडेंशियल प्रॉम्प्ट दोहरा रहा हूं। यह एक दिलचस्प है, पिछले उपयोगकर्ता द्वारा अनुशंसित DelegConfig उपकरण स्थानीय रूप से विंडोज प्रमाणीकरण के साथ काम करता है। तो मैं अपने वेब.कॉन्फिग की तुलना टूल की तुलना में करने जा रहा हूं और देख सकता हूं कि कुछ भी स्पष्ट है या नहीं। – user1032943

+0

इस उत्तर ने मेरी समस्या का समाधान किया - मैं फ़ायरफ़ॉक्स (3 9 .0.3) के साथ विंडोज प्रमाणीकरण का उपयोग करने की कोशिश कर रहा था, और "प्रमाणीकरण आवश्यक" संवाद प्राप्त करने से कोई फर्क नहीं पड़ता कि मैंने क्या किया। मैंने एमएसआईई के साथ अपना प्रोजेक्ट चलाया और प्रमाणीकरण ठीक से काम किया। –

8

मुझे पता है कि यह थोड़ा पुराना विषय है, लेकिन मुझे यह वही समस्या थी।बाहर निकलता है मेरे पास AppSool पहचान का उपयोग कर रहा था: NetworkService की बजाय ApplicationPoolIdentity। एक बार जब मैंने इसे स्विच किया (आईआईएस 7.5 में उन्नत सेटिंग्स के तहत) अब मुझे सर्वर को अतिरिक्त क्रेडेंशियल्स के लिए संकेत नहीं मिला है और पास-थ्रू पूरी तरह से काम करता है।

आशा है कि मदद करता है!

0

बस मददगार होने पर, मेरे लिए समस्या यह थी कि मैंने एनटीएफएस अनुमतियों का उपयोग करने के लिए क्लासिक मोड में अपना एप्लिकेशन पूल छोड़ा था। मुझे यह काम करने के लिए कभी नहीं मिला, लेकिन एक बार जब मैंने इसे एकीकृत मोड में वापस कर दिया, तो मैं विशिष्ट उपयोगकर्ताओं की पहुंच को कॉन्फ़िगर करने के लिए <allow> और <deny> टैग का उपयोग कर सकता था।

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