6

मैं एक फार्म आधारित प्रमाणीकरण दिशाओं मैं यहां पाया निम्नलिखित किसी ASP MVC 3 आवेदन में ई का उपयोग करता है लागू किया ASP.NET MVC - Authenticate users against Active Directory, but require username and password to be inputtedASP.NET MVC प्रपत्र आधारित प्रमाणीकरण ई का उपयोग कर स्थानीय स्तर पर काम करता है लेकिन सर्वर पर विफल रहता है (IIS7)

मैं ठीक काम करता है जब मैं ASP.NET विकास सर्वर का उपयोग कर चलाते हैं, लेकिन प्रवेश पृष्ठ के पार जाने के बाद मैं अपने क्रेडेंशियल दर्ज विफल रहता है और निम्न त्रुटि देता है:

विन्यास त्रुटि

विवरण: कोई त्रुटि occu इस अनुरोध की सेवा के लिए आवश्यक कॉन्फ़िगरेशन फ़ाइल की प्रसंस्करण के दौरान rred। कृपया नीचे दिए गए विशिष्ट त्रुटि विवरणों की समीक्षा करें और अपनी कॉन्फ़िगरेशन फ़ाइल को उचित रूप से संशोधित करें।

पार्सर त्रुटि संदेश: एक ऑपरेशन त्रुटि हुई।

स्रोत त्रुटि:

Line 37:  <membership defaultProvider="MY_ADMembershipProvider"> 
Line 38:  <providers> 
Line 39:   <add name="MY_ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" /> 
Line 40:  </providers> 
Line 41:  </membership> 

किसी भी मदद की बहुत सराहना की जाएगी, अग्रिम धन्यवाद।

अद्यतन: अब तक के बाद डिबग करता है की एक जोड़ी मुझे लगता है कि त्रुटि web.xml config में System.Web.Security.ActiveDirectoryMembershipProvider से आ रही हो सकता है, मैं System.Web जोड़ा (जिसमें उस वर्ग पाया जाता है) एक संदर्भ के रूप और यह भी एक बनाने के लिए

<add 
    name="MY_ADMembershipProvider" 
    type="System.Web.Security.ActiveDirectoryMembershipProvider" 
    connectionStringName="ADConnectionString" 
    attributeMapUsername="sAMAccountName" 
    connectionUsername="YOURDOMAIN\SomeAccount" 
    connectionPassword="secret" 
/> 

आप नहीं करना चाहते हैं: स्थानीय प्रतिलिपि, लेकिन अभी भी, ज़िप ... :(

उत्तर

6

सुनिश्चित करें कि आप एक मान्य उपयोगकर्ता नाम और आपका विज्ञापन के लिए पर्याप्त विशेषाधिकार उस खाते का पासवर्ड बीत चुके हैं ऐसा करने के लिए आपको एप्लिकेशन पू को कॉन्फ़िगर करना होगा आपके आईआईएस में एक ऐसे खाते के तहत चलाने के लिए जिसमें आपकी सक्रिय निर्देशिका से पूछताछ करने के लिए पर्याप्त विशेषाधिकार हैं। डिफ़ॉल्ट रूप से आपका एप्लिकेशन स्थानीय नेटवर्क सेवा खाते के अंतर्गत चलता है जिसके पास एडी तक कोई पहुंच नहीं है।

+0

यह तब भी नहीं हो सकता है जब एप्लिकेशन प्रपत्र विधि से प्रमाणीकरण विधि के रूप में स्विच करते समय एप्लिकेशन पूरी तरह से अच्छी तरह से काम करता है। – dotKwame

+0

यह बिल्कुल सामान्य है। जब आप Windows प्रमाणीकरण का उपयोग करते हैं तो आप अपने एडी से पूछने के लिए क्लाइंट के प्रमाण-पत्र का उपयोग कर रहे हैं। जब आप अनाम प्रमाणीकरण का उपयोग करते हैं, तो कोई अनुमति नहीं होती है। –

+0

तो बस एक कस्टम एडी सदस्यता प्रदाता के साथ इसका परीक्षण किया गया जो "मैन्युअल रूप से" एडी के माध्यम से कोड 'DirectoryEntry dsEntry = new DirectoryEntry (ldapSvrAddr, model.Username, model.Password) में प्रमाणीकृत है; ऑब्जेक्ट netobj = dsEntry.NativeObject; ', फिर' System.Web.Security.ActiveDirectoryMembershipProvider' से 'MyNamespace.MyCustomADClass'' से web.config में टाइप को बदल दिया और यह ठीक काम किया (कोई कनेक्शन उपयोगकर्ता नाम या पासवर्ड आवश्यक नहीं है), लेकिन मैं चाहता हूं मानक फ्रेम सदस्यता प्रदाता का उपयोग .नेट फ्रेमवर्क में करें और – dotKwame

6

मैंने एप्लिकेशन एप्लिकेशन की पहचान "ApplicationPoolIdentity" से "NetworkService" में बदल दी और अब सबकुछ बढ़िया काम करता है।

+0

यह मेरे लिए भी काम करता है! – chridam

+0

इसे कैसे बदलें? – Shrivallabh

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

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