我在web.config中设置了站点以进行Windows身份验证,但是它没有被IIS选中

时间:2014-11-03 20:45:48

标签: iis web-config windows-authentication iis-8.5

在带有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的情况,所以我冒昧地说我没做正确的事情。

2 个答案:

答案 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