我正在使用IIS并尝试部署需要身份验证模式=“Windows”的Web应用程序。
然而,在我尝试使用的每台机器上,只是部署Web应用程序不起作用。 web.config说
<authentication mode="Windows">
但在IIS管理器下它说
Windows Authentication Disabled
所以我保存了web.config的备份,然后我使用IIS启用了Windows身份验证。在我这样做之后,我的应用程序正常 ,但web.config文件未更改 。
我必须为每个客户自动创建此Web应用程序的新实例。要求IT人员手动转到每个Web应用程序并启用此功能是不可取的。我需要web.config文件才能工作,或者我需要知道我必须更改哪个配置文件才能使其正常工作。我花了好几天时间试图对它进行排序而没有成功。
非常感谢任何帮助。
答案 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
中的设置如何,您都不会在浏览器中获得用户名和密码质询。