在 IIS 中,您可以使用“功能”视图设置文件夹级别的设置(参见屏幕截图)。我想为我网站的几个子文件夹禁用匿名身份验证并将这些设置保存到源代码管理。我想知道 IIS 将这些设置保存在哪里。它们不在网站 web.config 或子文件夹内的 web.config 中。无论如何我可以使用源代码保存 IIS 设置,还是必须在每次新部署时执行这些任务?
1 回答
将以下内容添加到您web.config
要保护的每个文件夹的根目录中:
<location path="secure_folder">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<basicAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
以上假设您使用的是基本身份验证。
或者在每个子文件夹中创建一个web.config
几乎相同的保护(除了没有<location>
标签:
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<basicAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
如果收到错误,例如:
执行此操作时出错。
细节:
文件名:\?\d:\sites\play1\www\web.config
行号:15
错误:此配置部分不能在此路径中使用。当该部分锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny") 或由具有 overrideMode="Deny" 或旧 allowOverride="false" 的位置标记显式设置的。
那么这意味着配置设置<anonymousAuthentication>
并<basicAuthentication>
没有被委派读/写权限。
您可以通过启动 IIS 管理器并打开功能委派管理器来调整它:
执行此操作时,您将看到可以控制的功能列表及其委托状态:
右键单击Authentication - Anonymous
并选择Read/Write
。对 做同样的事情Authentication - Basic
。
此功能委派设置将在服务器上的所有站点全局应用,但是可以使用自定义站点委派将其微调到特定站点。
您可以在此处阅读有关 IIS 7.x/8.0 功能委派的更多信息: