为什么IIS在<authentication mode =“Windows”>?</authentication>时会忽略web.config

时间:2011-04-20 23:24:19

标签: iis authentication

我正在使用IIS并尝试部署需要身份验证模式=“Windows”的Web应用程序。

然而,在我尝试使用的每台机器上,只是部署Web应用程序不起作用。 web.config说

<authentication mode="Windows">

但在IIS管理器下它说

Windows Authentication Disabled

所以我保存了web.config的备份,然后我使用IIS启用了Windows身份验证。在我这样做之后,我的应用程序正常 ,但web.config文件未更改

我必须为每个客户自动创建此Web应用程序的新实例。要求IT人员手动转到每个Web应用程序并启用此功能是不可取的。我需要web.config文件才能工作,或者我需要知道我必须更改哪个配置文件才能使其正常工作。我花了好几天时间试图对它进行排序而没有成功。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:30)

我假设您正在针对某些Windows用户帐户验证用户身份?我还假设您希望浏览器弹出用户名和密码质询?

这里有两种不同的工作方式。

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

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

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

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

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

无论applicationHost.config中的设置如何,您都不会在浏览器中获得用户名和密码质询。