我为站点启用了Windows身份验证模块,并禁用了所有其他身份验证类型(如匿名,基本等).
站点的应用程序池在自定义标识下运行,已为其正确设置了SPN和主机标头.
在尝试通过浏览器访问网站下托管的任何内容(如文本文件)时,出现401.2错误.
我按照 this suggestion并将useAppPoolCredentials属性添加到applicationHost.config,我可以使用Windows身份验证访问该资源.
然后我删除了属性并再次保存了applicationHost.config,有效地撤消了我的更改,我仍然能够访问资源.这给了什么?
有人可以帮我理解这种行为吗?
此外,在Win Server 2008R2上的IIS 7.5的一个特定安装中,我注意到对站点(或应用程序)的默认配置的任何更改都会导致IIS在站点/应用程序的根目录下自动生成Web.config文件.是否有设置启用此项而不必直接更新applicationHost.config?
如果导航到IIS管理器的计算机节点,您将看到一个名为“功能委派”的图标:
启动此IIS“applet”,您将看到一系列可以将其配置委派给web.config的功能.
标记为“读/写”的设置通常会将其设置写入web.config文件.标记为“只读”的设置通常将其设置写入applicationHost.config,并且无法在web.config文件中覆盖.
正如它发生的那样< windowsAuthentication>配置可以委托给web.config文件.
小问题:
并非所有小程序都可以显示您可以配置的所有设置.正如它所发生的那样一个很好的例子是< windowsAuthentication> useAppPoolCredentials属性.它在认证小程序中无处可见,即使在高级设置下也是如此.
但是,您可以通过配置编辑器获取此值(以及其他所有内容).如果您导航到IIS管理器左侧窗格中的网站节点,您将在管理下看到此图标:
如果启动配置编辑器,您将看到一个包含各种设置树的下拉列表:
如果我们选择/system.webServer/security/authentication/windowsAuthentication节点,我们将看到可以更改的全部设置.在这里,我们可以看到我们感兴趣的设置(useAppPoolCredentials):
您可以从config部分树下拉列表旁边的From:下拉列表中选择是在web.config中还是在applicationHost.config中配置网站的值:
如果某个部分尚未在web.config中委托为读/写,那么您将看到以下内容:
我们收到警告,说明此特定功能已锁定,所有设置都显示为灰色并已禁用,并且有一个挂锁表示此功能的子设置也已锁定.
最后,并非所有设置都可以委派,例如站点绑定,应用程序池,虚拟目录.