हमारे पास कुछ ऐप्स हैं जिन्हें इस सटीक चीज़ को करने की आवश्यकता है। अक्सर हमारी क्षुधा web.config में से लॉक:
<authentication mode="Windows"/>
<authorization>
<allow roles="DOMAIN\GroupNameHere"/>
<deny users="?"/>
</authorization>
<location path="ApiControllerName">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
हालांकि, अगर आप अभी भी उस एपीआई नियंत्रक के लिए Windows प्रमाणीकरण को बंद करना है।
<location path="Default Web Site/ApplicationName/ApiControllerName">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
यह PowerShell स्क्रिप्ट यह तुम्हारे लिए क्या करेंगे:: आप संपादन आईआईएस सर्वर पर applicationHost.config
फ़ाइल और जोड़ कर ऐसा कर सकते हैं
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
$applicationLocationPath = "Default Web Site/ApplicationName/ApiControllerName"
$oIIS = new-object Microsoft.Web.Administration.ServerManager
$oGlobalConfig = $oIIS.GetApplicationHostConfiguration()
$oSection = $oGlobalConfig.GetSection("system.webServer/security/authentication/anonymousAuthentication", $applicationLocationPath)
$oSection.SetAttributeValue("enabled", "True")
$oSection = $oGlobalConfig.GetSection("system.webServer/security/authentication/windowsAuthentication", $applicationLocationPath)
$oSection.SetAttributeValue("enabled", "False")
$oIIS.CommitChanges()
"केवल एक या दूसरे ऐसा करने में सक्षम हो गया", तब आपने वास्तव में कैसे किया? – bzlm
आपने विंडोज़ ऑथ को वास्तव में कैसे सक्षम किया है? – gideon
आईआईएस सेटिंग्स में विंडोज प्रमाणीकरण सक्षम है और यह अनामित भी अनुमति दे रहा है। Web.config में <प्रमाणीकरण मोड = "विंडोज़" /> है। मैंने नियंत्रक को [प्राधिकृत] विशेषता जोड़ा जो मुझे संरक्षित करने के लिए आवश्यक था और इसे उस नियंत्रक से बाहर छोड़ दिया जिसे मैं बेनकाब करना चाहता था। – Shawn