我正在管理一批 IIS 8.5 服务器,并且致力于遵守安全基线。
我的问题是:如果我appcmd
在我们的一台 IIS 服务器上运行特定查询,我会得到以下结果:
C:\>appcmd list config -section:system.web/authentication
<system.web>
<authentication mode="Forms">
<forms requireSSL="true">
<credentials>
</credentials>
</forms>
<passport />
</authentication>
</system.web>
C:\>
我需要做的是找到appcmd
从这里读取的实际配置文件,这样我就可以手动更新相关部分(使用appcmd
其自身进行更新会导致各种问题)。我找不到它。到目前为止,我已经检查了以下文件:
- %SYSTEMROOT%\System32\inetsrv\config\applicationHost.config
- %SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
- %SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319\Config\web.config
- %SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
- %SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
- %WEBROOT%\web.config
- %WEBROOT%\旧应用程序路径\web.config
- 新的应用程序路径\web.config
我想不出还有什么地方可以查看。大多数文件甚至没有一个<system.web>
部分,而且其中没有任何地方有“凭据”一词。
从哪里appcmd
读取以生成上述输出?
编辑:
我仍在研究这个问题,刚刚发现以下内容这里,答案可能是:
默认配置
以下默认凭据元素未在 Machine.config 或根 Web.config 文件中明确配置。但是,它是应用程序返回的默认配置。
<credentials passwordFormat="SHA1" />
答案1
查看:
%SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
System.web 是一个 dot.NET 设置,所以它应该在全局 web.config 文件中,似乎它只存在于 64 位版本中,而不是 32 位框架中。