我们有一个客户端 Intranet Web 应用程序作为远程代理在 IIS 8.5 上运行,并启用了 Windows 身份验证。现在,我们需要禁用Windows 身份验证并启用匿名认证在 URL 子路径上/api/
使来自此路径的所有数据在客户端 Intranet 域内公开可用。
实际上,解决方案来自陈氏变形者 (向子文件夹添加身份验证,无需创建 Web 应用程序)听起来很有希望。然而还没有让它运行,因为我错过了节声明.
如何配置 IIS 8.5 来实现此目的?
经过长时间的尝试,我自己找到了答案。答案分为两部分:
-
@Tim Lewis 的回答(允许对 web.config 中的单个文件夹进行匿名身份验证吗?)引导我找到正确的配置。在文件中applicationHost.config
in C:\Windows\System32\inetsrv\config
,我更改了以下几行Deny
to Allow
:
<section name="access" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
然后在里面web.config
from C:\inetpub\wwwroot
,我在最后一行之前插入了以下行</configuration>
tag:
<location path="api">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
重新启动后IIS管理器和服务器,来自主域的 Windows 身份验证应该被覆盖子路径(/api
在我的例子中)并且子路径中的每个 URL 都应该公开可用。
-
但是,如果此配置一开始不起作用,则可能是您选择的编辑器(在我的例子中记事本++) 没有打开正确的内容appplictionHost.config
(无论出于何种原因)并且其中的所有更改根本不会生效(另请参阅@MeanGreenApplicationhost.config 未显示更改).
我通过安装和使用解决了这个问题记事本2 x64 (http://www.flos-freeware.ch/notepad2.html)。此后,上述更改立即生效并生效。
PS:另请参阅http://forums.iis.net/t/1233382.aspx?IIS+8+5+Change+authentification+mode+for+url+sub+path对这个话题进行更长时间的讨论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)