在IIS中,您可以使用“功能”视图设置文件夹级设置(请参见屏幕截图)。我想为我的网站的几个子文件夹禁用匿名身份验证,并将这些设置保存到源代码管理。我想知道IIS保存这些设置的位置。它们不在web.config网站或子文件夹中的web.config中。无论如何我可以使用源代码保存IIS设置,还是我必须在每次新部署时执行这些任务?
答案 0 :(得分:3)
为您要保护的每个文件夹将以下内容添加到根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”),或由a显式设置 使用overrideMode =“Deny”或遗留的位置标记 有的allowOverride = “假”。
然后,这意味着<anonymousAuthentication>
和<basicAuthentication>
的配置设置尚未被委派读/写权限。
您可以通过启动IIS管理器并打开功能委派管理器来调整此项:
执行此操作时,您将看到可以控制的功能列表及其委派状态:
右键点击Authentication - Anonymous
,然后选择Read/Write
。对Authentication - Basic
执行相同的操作。
此功能委派设置将全局应用于服务器上的所有站点,但是可以使用自定义站点委派将其微调到特定站点。
您可以在此处阅读有关IIS 7.x / 8.0功能委派的更多信息: