2011-04-20 89 views
21

我正在使用IIS并尝试部署需要身份验证模式=“Windows”的Web应用程序。为什么在<authentication mode =“Windows”/>时忽略web.config?

但是在每台机器上我都试过,只是部署Web应用程序不起作用。在Web.config说

<authentication mode="Windows"> 

但IIS管理器下它说

Windows Authentication Disabled 

所以我救我的web.config的备份,然后我用IIS启用Windows身份验证。我这样做后,我的应用程序工作正常但web.config文件不变

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

任何帮助,非常感谢。

+1

你能更具体吗? IIS6,IIS7? – Kev 2011-04-21 10:55:16

回答

30

我假设你正在验证用户对一些Windows用户帐户?我也假设你想让浏览器弹出用户名和密码挑战?

这里有两种不同的工作。

web.config中的<authentication mode="Windows"/>设置仅告诉ASP.NET基于由IIS提供的凭据而不是由Forms Authentication(或其他提供者)提供的凭据。它不是由IIS控制的设置,IIS不具有此设置的可见性。在web.config中更改此设置也不会更改IIS的身份验证设置。

当您更改IIS MMC的Windows身份验证设置,您正在改变在IIS6的设置配置数据库或者如果你(在applicationHost.configweb.config或可能根据设定如何改变),使用IIS7的system.webServer/security/authentication部分。

所以,除非你(你知道这一点):

  • 从网站上删除匿名身份验证在IIS MMC,或者在站点中的文件和文件夹

  • 删除NTFS权限为匿名账户指定IIS中的Windows身份验证MMC

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

+5

这非常有帮助。只是关键字“applicationHost.config”是我需要的大部分。 后人的其他一些意见: 从这个链接我能够找到有关如何配置我认为应该在web.config中的东西的信息: http://www.iis。net/ConfigReference 然而,起初它看起来像我没有任何这些配置文件,因为我使用TotalCommander。显然你需要具有管理员权限才能查看目录,并且只有在用64位程序查看文件时才能看到文件(如果位于64位的机器上) 谢谢! – 2011-04-21 16:57:38

+0

我发现奇怪的是,您可以在IIS管理器GUI中启用Windows身份验证并需要特定的Windows组(ASP.Net授权规则),但似乎在GUI中设置了* no *设置来设置web.config身份验证模式?有人纠正我,如果我在这里错了。 – 2015-07-15 18:56:34

+1

@Mister_Tom你的意思是在'system.web'还是'system.webServer'?如果你的意思是'system.web',那么是的,正确的,看起来像是一个疏忽,但即便如此,并不是所有的IIS特定的配置设置都有一个IIS MMC配置应用程序,有些不显示所有的配置选项。也就是说,您可以使用IIS管理包中提供的通用配置编辑器配置这些隐藏的功能/选项:http://www.iis.net/learn/web-hosting/web-server-for-shared-托管/管理包 – Kev 2015-07-15 19:30:37

相关问题