为什么 IIS 在涉及<身份验证模式 = "Windows" /> 时忽略 web.config?



我正在使用IIS,并试图部署一个需要身份验证模式="Windows"的web应用程序。

然而,在我尝试的每台机器上,简单地部署web应用程序不工作。网络。配置显示

<authentication mode="Windows">

但是在IIS管理器下显示为

Windows Authentication Disabled

所以我保存了我的网页备份。配置,然后我使用IIS启用windows身份验证。在我这样做之后,我的应用程序工作得很好但是web。.

我必须为每个客户端自动创建这个web应用程序的新实例。要求IT人员手动进入每个web应用程序并打开此功能是不可能的。我需要网络。配置文件的工作,或者我需要知道什么配置文件,我必须改变,使其工作。我花了好几天的时间来整理这个,但是没有成功。

我假设您正在对一些windows用户帐户进行身份验证?我还假设您希望浏览器弹出用户名和密码挑战?

这里有两种不同的东西在起作用。

web.config中的<authentication mode="Windows"/>设置只是告诉ASP。. NET根据IIS而不是由Forms Authentication(或其他提供程序)提供的凭据构造标识。它不是由IIS控制的设置,并且IIS无法看到此设置。另外,在web.config中更改此设置不会更改IIS的身份验证设置。

当您更改IIS MMC中的Windows身份验证设置时,您正在更改IIS6元数据库中的设置,或者如果您使用IIS7的system.webServer/security/authentication部分(在您的web.config或可能在applicationHost.config中取决于如何更改设置)。

所以除非你(你知道这个):

  • 从IIS MMC中删除站点的匿名身份验证,或删除匿名帐户对站点文件和文件夹的NTFS权限

  • 在IIS MMC中指定Windows身份验证

无论system.web/authentication中的设置如何,您都不会在浏览器中获得用户名和密码挑战。

最新更新