IIS एक्सप्रेस Windows प्रमाणीकरण


245

मैं एक रजत अनुप्रयोग की मेजबानी के लिए VS2010 के साथ IIS एक्सप्रेस का उपयोग करने की कोशिश कर रहा हूं। मैंने उचित कॉन्फ़िगरेशन सेटिंग्स के संशोधन के लिए अपनी Applicationhost.config फ़ाइल को संशोधित किया। मेरे पास मेरे web.config में निम्नलिखित हैं:

<location path="">
  <system.webServer>
    <security>
      <authentication>
        <anonymousAuthentication enabled="false" />
        <windowsAuthentication enabled="true" />
      </authentication>
    </security>
  </system.webServer>
</location>

मुझे प्रमाणित नहीं किया जा रहा है और मेरी डोमेन सेवा कॉल उपयोगकर्ता के रूप में एक शून्य रिकॉर्ड लौटाती है। मैं VS2010 SP1 बीटा स्थापित करने के बाद काम करने के लिए इसे प्राप्त करने में सक्षम था, लेकिन मैं इसे केवल IIS एक्सप्रेस के साथ काम करने की कोशिश कर रहा हूं।

मैं IIS एक्सप्रेस के साथ काम करने के लिए Windows प्रमाणीकरण कैसे सक्षम करूं। क्या कोई कॉन्फ़िगरेशन सेटिंग है जो मुझे याद आ रही है?

जवाबों:


276

विकल्प -1 :

\My Documents\IISExpress\config\applicationhost.configफ़ाइल संपादित करें और विंडोज़ सक्षम करें, अर्थात:

<system.webServer>
...
  <security>
...
    <authentication>
      <windowsAuthentication enabled="true" />
    </authentication>
...
  </security>
...
</system.webServer>

विकल्प -2 :

निम्न के रूप में \ My दस्तावेज़ \ IISExpress \ config \ applicationhost.config में windowsAuthentication अनुभाग अनलॉक करें

<add name="WindowsAuthenticationModule" lockItem="false" />

'अनुमति दें' के लिए आवश्यक प्रमाणीकरण प्रकारों के लिए ऑल्टर ओवरराइड सेटिंग्स

<sectionGroup name="security">
    ...
    <sectionGroup name="system.webServer">
        ...
        <sectionGroup name="authentication">
            <section name="anonymousAuthentication" overrideModeDefault="Allow" />
            ...
            <section name="windowsAuthentication" overrideModeDefault="Allow" />
    </sectionGroup>
</sectionGroup>

एप्लिकेशन के web.config में निम्नलिखित जोड़ें

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
      <security>
        <authentication>
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
</configuration>

नीचे दिए लिंक से मदद मिल सकती है: http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/

वीएस 2010 SP1 को स्थापित करने के बाद विंडोज़ ऑथेंटिकेशन को काम करने के लिए विकल्प 1 + 2 की आवश्यकता हो सकती है। इसके अलावा, आपको IIS एक्सप्रेस Applicationhost.config में झूठे के लिए अनाम प्रमाणीकरण सेट करने की आवश्यकता हो सकती है:

<authentication>

            <anonymousAuthentication enabled="false" userName="" />

VS2015 के लिए, IIS एक्सप्रेस एप्लिकेशनहोस्ट कॉन्फिगर फाइल यहां स्थित हो सकती है:

$(solutionDir)\.vs\config\applicationhost.config

और <UseGlobalApplicationHostFile>प्रोजेक्ट फ़ाइल में विकल्प डिफ़ॉल्ट या समाधान-विशिष्ट कॉन्फ़िगरेशन फ़ाइल का चयन करता है।


धन्यवाद। लेकिन मैंने ऊपर दिए गए विकल्पों को आजमाया। लेकिन मैं अभी भी Windows प्रमाणीकरण का उपयोग करने में सक्षम नहीं हूं। मुझे लगता है कि मुझे यह कार्यक्षमता प्राप्त करने के लिए VS2010 / SP1 की प्रतीक्षा करनी होगी।
मार्क

3
विकल्प दो ने मेरे लिए काम किया। हालांकि इस पोस्ट को खोजने में थोड़ा समय लगा!
टॉड मार्क

यह प्रश्न वास्तव में अब लागू नहीं होता है क्योंकि VS2010 sp1 बाहर आया था। मैं इसे sp1 स्थापित किए बिना काम करने की कोशिश कर रहा था। मेरा अनुमान है कि sp1 पहली बार इसे स्थापित करने के लिए कुछ कर रहा है जो मैं अभी समझ नहीं पाया। मैं आगे जा सकता हूं और इस उत्तर को सही चिह्नित कर सकता हूं, हालांकि यह वास्तव में नहीं है क्योंकि sp1 स्थापित नहीं किया जा रहा था पूर्व-अपेक्षित था।
मार्क

1
धन्यवाद दोस्त! अनाम प्रमाणीकरण को अक्षम करके NTLM ने काम किया।
रोब एंजेलियर

4
VS2015 में IIS एक्सप्रेस कॉन्फ़िगरेशन समाधान संरचना में, विशेष रूप से, $ (SolutionDir) में चला गया। बनाम \ config \ applicationhost.config दुख की बात है कि यह MyDocuments \ IISExpress के तहत मौजूदा कॉन्फ़िगरेशन को ध्यान में नहीं रखता है, इसलिए इन अनुकूलन को पढ़ने की आवश्यकता होगी।
टेडफोर्ड

401

विज़ुअल स्टूडियो 2010 SP1 और 2012 ने एआईएस एक्सप्रेस के लिए समर्थन जोड़ा, जो कोष्ठक को संपादित करने की आवश्यकता को समाप्त करता है।

  1. यदि आप पहले से ही नहीं हैं, तो वेब-स्वाद वाली परियोजना पर राइट-क्लिक करें और "आईआईएस एक्सप्रेस का उपयोग करें ..." चुनें।
  2. एक बार पूरा होने पर, वेब प्रोजेक्ट चुनें और F4गुण पैनल पर ध्यान दें।
  3. "Windows प्रमाणीकरण" संपत्ति को सक्षम करने के लिए सेट करें, और "अनाम प्रमाणीकरण" संपत्ति अक्षम करने के लिए।

यहां छवि विवरण दर्ज करें

मेरा मानना ​​है कि यह समाधान विकोमॉल के विकल्पों से बेहतर है।

  • विकल्प # 1 सभी IIS एक्सप्रेस साइटों के लिए एक वैश्विक परिवर्तन है।
  • विकल्प # 2 web.config में विकास क्रॉफ़्ट छोड़ देता है।
    • आगे, यह संभवतः IIS 7.5 पर तैनात होने पर एक त्रुटि पैदा करेगा जब तक कि आप अपने IIS सर्वर के applicationHost.config पर "अनलॉक" प्रक्रिया का पालन न करें।

उपर्युक्त यूआई-आधारित समाधान IIS एक्सप्रेस के applicationHost.config में साइट-विशिष्ट स्थान तत्वों का उपयोग करता है जो ऐप को अछूता छोड़ देता है।

अधिक जानकारी यहाँ: http://msdn.microsoft.com/en-us/magazine/hh288080.aspx


5
यह याद रखने के लिए कि मैंने क्या याद किया - गुण संदर्भ मेनू और Alt-Enterशॉर्टकट गुण फलक विवरणों को पूरी तरह से नहीं दबाते हैं, जो आपको यह बदलने की अनुमति देता है कि विंडोज़ प्रमाणीकरण सक्षम है या नहीं। F4गुण फलक पर उपयोग करें या क्लिक करें वास्तव में गुण देखें।
कालेब पेडरसन

मैं इस लेख के साथ शुरू करने से पहले कई दिनों तक इस कार्य से जूझता रहा : msdn.microsoft.com/en-us/library/gg703322%28VS.98%29.aspx मूल रूप से, मूल पोस्ट में सब कुछ की उपेक्षा, एक "के साथ शुरू" कुंवारी "applicationhost.config और बस इस जवाब के अनुसार सेटिंग्स को सक्षम करें। अंत में मुझे विंडोज प्रमाणीकरण मिलता है! धन्यवाद!!
डेविएन ५

यह .csproj में 'सक्षम' से 'अक्षम' में IISExpressWindowsAuthentication सेटिंग को बदलना समाप्त करता है। <IISExpressWindowsAuthentication> अक्षम </ IISExpressWindowsAuthentication>
कैमरन

7
वे 2 विकल्प धूसर हो गए हैं और मेरे लिए अक्षम हो गए हैं। कोई विचार क्यों?
जाग

1
2 विकल्प धूसर हो जाते हैं क्योंकि आपके पास यह आपके IIS एक्सप्रेस कॉन्फ़िगर <खंड का नाम = "अनाम नाम" ओवरराइडमॉडडिफॉल्ट = "अनुमति दें" /> <अनुभाग का नाम = "windowsAuthentication" overrideModeDefault = "अनुमति दें" /> ओवरराइडमॉडडाईफ़ॉल्ट = "अनुमति दें" "और वे बाहर निकलेंगे
मीका आर्मेंट्राउट

9

बूइज़ बॉय के उत्तर पर निर्माण, जाँच करें कि क्या आपने कंट्रोल पैनल में "विंडोज़ ऑथेंटिकेशन" फ़ीचर की जाँच की है -> प्रोग्राम्स -> ऑन - एंड -> इंटरनेट इन्फॉर्मेशन सर्विसेज -> वर्ल्ड वाइड वेब सर्विसेज़ -> सिक्योरिटी

इसके अलावा, फ़ायरफ़ॉक्स या इंटरनेट एक्सप्लोरर का उपयोग करते समय एक बड़ा अंतर प्रतीत होता है। "विंडोज़ प्रमाणीकरण" को लागू करने के बाद यह मेरे लिए काम करता है लेकिन केवल IE में।


2
और यह फ़ायरफ़ॉक्स में काम करने के लिए हो रहा है: markmonica.com/2007/11/20/…
bees73


5

इन महान जवाबों के अलावा, एक IISExpress देव वातावरण के संदर्भ में, और कुख्यात "system.web/identity@impersonate" त्रुटि को विफल करने के लिए, आप बस यह सुनिश्चित कर सकते हैं कि निम्न सेटिंग आपकी Applicationhost.config फ़ाइल में जगह पर है ।

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
</configuration>

यह आपको विकास और परीक्षण के दौरान अधिक लचीलेपन की अनुमति देगा, हालांकि सुनिश्चित करें कि ऐसा करने से पहले आप उत्पादन परिवेश में इस सेटिंग का उपयोग करने के निहितार्थ को समझते हैं।

सहायक पोस्ट:


इस दुर्घटना से पूरी तरह से उतरा, लेकिन इसने काम किया :-)
joshmcode

2

IIS प्रबंधक में अपनी साइट पर क्लिक करें। आपको "फीचर दृश्य" ("सामग्री दृश्य" के बजाय) होना चाहिए

"सुविधा दृश्य" के IIS अनुभाग में तथाकथित सुविधा "प्रमाणीकरण" चुनें और डॉल्बी इसे क्लिक करें। यहां आप विंडोज ऑथेंटिकेशन को इनेबल कर सकते हैं। यह web.config (...) में एक सेटिंग द्वारा (धागे में सुझावों में से एक में मुझे लगता है) भी संभव है

लेकिन हो सकता है कि आपके पास एक web.config हो, जिसे आप बहुत अधिक घेरना नहीं चाहते। तब यह धागा बहुत ज्यादा मदद नहीं करेगा, यही वजह है कि मैंने यह जवाब जोड़ा है।


0

यह उत्तर मदद कर सकता है यदि: 1) आपकी साइट विजुअल स्टूडियो 2015 और 2 में अपग्रेड करने से पहले विंडोज प्रमाणीकरण के साथ काम करती थी और आपकी साइट लोड करने का प्रयास कर रही है /login.aspx(भले ही आपकी साइट पर ऐसी कोई फ़ाइल नहीं है)।

appSettingsअपनी साइट के अनुभाग में निम्नलिखित दो पंक्तियाँ जोड़ें Web.config

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>

0

उसी नोट पर - VS 2015, .vs \ config \ applicationhost.config दिखाई नहीं देता या उपलब्ध नहीं है।

डिफ़ॉल्ट रूप से .vs फ़ोल्डर छिपा हुआ है (कम से कम मेरे मामले में)।

यदि आप .vs फ़ोल्डर को खोजने में सक्षम नहीं हैं, तो नीचे दिए गए चरणों का पालन करें।

  1. समाधान फ़ोल्डर पर राइट क्लिक करें
  2. 'गुण' चुनें
  3. में Attributesअनुभाग, क्लिक करेंHidden चेक बॉक्स (डिफ़ॉल्ट रूप से अनचेक),
  4. इसके बाद the अप्लाई ’बटन पर क्लिक करें
  5. यह पुष्टिकरण विंडो दिखाएगा 'इस फ़ोल्डर में परिवर्तन, सबफ़ोल्डर और फ़ाइलों का चयन करें, चयनित विकल्प,' ओके 'हिट करें।

    चरण 1 से 5 को दोहराएं, इसके अलावा step 3, इस बार आपको uncheck'हिडन' विकल्प की आवश्यकता है जिसे आपने पहले चेक किया था।

अब .vs फ़ोल्डर को देखने में सक्षम होना चाहिए।


0

उपरोक्त उत्तरों में सब कुछ करने के बाद, मुझे लगा कि मैं विजुअल स्टूडियो को एडमिन के रूप में नहीं चला रहा हूं। व्यवस्थापक के रूप में चलने के बाद, समस्या हल हो गई।


0

यदि कोई भी उत्तर मदद नहीं करता है, तो आपको परियोजना के गुणों को समायोजित करने की आवश्यकता हो सकती है। यह करने के लिए कैसे पर अन्य StackOverflow जवाब की जाँच करें:

https://stackoverflow.com/a/20857049/56621

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.