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

Jas*_*sen 21 authentication iis

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

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

<authentication mode="Windows">
Run Code Online (Sandbox Code Playgroud)

但是在IIS经理的指导下

Windows Authentication Disabled
Run Code Online (Sandbox Code Playgroud)

所以我保存了我的web.config的备份,然后我使用IIS来启用Windows身份验证.我这样做后,我的应用程序工作正常,但web.config文件没有改变.

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

任何帮助深表感谢.

Kev*_*Kev 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或可能的情况下,applicationHost.config取决于设置的更改方式).

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

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

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

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

  • 这非常有帮助.只需关键字"applicationHost.config"就是我所需要的.后人的一些其他评论:从这个链接我能够找到有关如何配置我认为应该在web.config中的内容的信息:http://www.iis.net/ConfigReference但是起初它看起来像我没有任何配置文件,因为我使用TotalCommander.显然你需要拥有管理员权限来查看目录,如果你用64位程序查看它们,你只能看到文件(如果在64位盒子上)谢谢! (5认同)