在带有IIS 8.5的Windows Server 2012r2包装盒上,我有一个带有web.config的普通html网站。
我的配置:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authentication mode="Windows"/>
</system.web>
</configuration>
不幸的是,IIS似乎没有采用我的身份验证模式设置。我可以通过将auth类型设置为windows来在IIS中完成此工作,但这将涉及我更新每个服务器。 IIS是否有某种方法可以从web.config中提取配置,以便在部署时正确设置该值?这似乎是几乎所有其他处理IIS和web.config的情况,所以我冒昧地说我没做正确的事情。
答案 0 :(得分:0)
您的网站是子应用程序吗?
尝试添加
<authorization>
<deny users="?" />
</authorization>
或
<identity impersonate="true" />
答案 1 :(得分:0)
显然,除非您解锁应用程序主机配置中的相应部分,否则IIS并不真正收听web.config。
qBernard http://forums.iis.net/members/qbernard.aspx在此发布了答案:http://forums.iis.net/t/1146296.aspx?How+to+set+authentication+with+appcmd+exe+or+ServerManager
(这是他在链接可能会中断时所说的内容) 对于appcmd,您可以通过/ section:xxxx进行设置。除了Form之外,所有身份验证方案都被锁定,因此您要先解锁它,要么在apphost级别提交它(意味着将配置存储在applicationHost.config中,这与通过web.config文件在xcopy部署中不太一样。
实施例。 appcmd set config&#34;默认网站&#34; / section:windowsAuthentication / enabled:true / commit:apphost
或先解锁: appcmd unlock config / section:windowsAuthentication appcmd set config&#34;默认网站&#34; / section:windowsAuthentication / enabled:true