将以下内容添加到您要保护的每个文件夹的根 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 功能委派的更多信息:
http://www.iis.net/learn/manage/managing-your-configuration-settings/an-overview-of-feature-delegation-in-iis