Win Server 2008 R2 上的 IIS 7.5 useAppPoolCredentials

Win Server 2008 R2 上的 IIS 7.5 useAppPoolCredentials

我正在尝试在 IIS 7.5 中为新网站设置 Windows 身份验证。我已为网站启用 Windows 身份验证模块,并禁用所有其他身份验证类型(如匿名、基本等)。网站的应用程序池以自定义身份运行,其 SPN 和主机标头已正确设置。尝试通过浏览器访问网站下托管的任何内容(如文本文件)时,我收到 401.2 错误。我按照这个建议并添加了使用AppPoolCredentials 属性到 applicationHost.config 并且我能够使用 Windows 身份验证访问资源。

然后我删除了该属性并再次保存了 applicationHost.config,有效地撤消了我的更改,并且我仍然可以访问该资源。这是怎么回事?有人能帮我理解这种行为吗?

此外,在 Win Server 2008R2 上安装 IIS 7.5 时,我注意到对站点(或应用程序)默认配置的任何更改都会导致 IIS 在站点/应用程序的根目录中自动生成 Web.config 文件。是否有一个设置可以启用此功能,而不必直接更新 applicationHost.config?

编辑浏览器正在缓存响应,因此撤消更改并保存文件似乎没有什么区别。所以我现在唯一的问题与 Web.config 的生成有关

答案1

关于您的第二个问题,如何确保配置更改持久保存到站点web.config而不是applicationHost.config,这可以通过功能委派来控制。

如果您导航到 IIS 管理器的计算机节点,您将看到一个名为“功能委派”的图标:

在此处输入图片描述

启动此 IIS“小程序”,您将看到可将其配置委托给的功能列表web.config

标记的设置读/写通常会将其设置写入web.config文件中。标记为只读通常会将其设置写入文件applicationHost.config中并且无法被覆盖web.config

事实上,<windowsAuthentication>配置可以委托给web.config文件。

小问题:

并非所有小程序都会显示您可以配置的全部设置。属性就是一个很好的例子<windowsAuthentication> useAppPoolCredentials。在身份验证小程序中看不到它,甚至在高级设置

但是你可以通过以下方式获取此值(以及几乎所有其他值)配置编辑器。如果您在 IIS 管理器左侧窗格中导航到您的网站节点,您将在下方看到此图标管理

在此处输入图片描述

如果你启动配置编辑器,你会看到一个下拉列表,其中包含各种设置树:

在此处输入图片描述

如果我们选择/system.webServer/security/authentication/windowsAuthentication节点,我们将看到可以更改的全部设置。在这里我们可以看到我们感兴趣的设置(useAppPoolCredentials):

在此处输入图片描述

您可以选择是否在网站中配置值,web.config或者applicationHost.config从:配置部分树下拉菜单旁边的下拉列表:

在此处输入图片描述

如果某个部分没有被授权为读/写然后web.config你会看到以下内容:

在此处输入图片描述

我们收到一条警报,说该特定功能已被锁定,所有设置都变灰并被禁用,并且有一个挂锁,表示此功能的子设置也被锁定。

最后,并非所有设置都可以委派,例如站点绑定、应用程序池、虚拟目录。

相关内容