我将项目发布到服务器后,IIS匿名身份验证自行启用

时间:2015-06-09 07:51:43

标签: c# asp.net authentication iis

我的ISP .NET站点遇到了一个奇怪的问题。我的站点使用Windows身份验证,我在IIS服务器上设置了身份验证选项以拒绝匿名身份验证。但是,每当我将项目上传到IIS服务器时,我的站点的匿名身份验证就会自动启用。

这是我的applicationHost.config,注意此处匿名身份验证设置为false,但每次我发布我的网站时,它都会自动更改为true,我必须登录到Web服务器并手动将其更改回来。

<location path="[my root folder]">
    <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="true" />
                <anonymousAuthentication enabled="false" />
                <basicAuthentication enabled="false" realm="" defaultLogonDomain="[my domain]" />
            </authentication>
        </security>
    </system.webServer>
</location>

这是我的web.config

<system.web>
   <compilation debug="true" targetFramework="4.5" />
   <httpRuntime targetFramework="4.5" maxRequestLength="102400" executionTimeout="3600" requestLengthDiskThreshold="102400"/>
   <authentication mode="Windows" />
   <authorization>
      <deny users="?" />
   </authorization>
   <customErrors mode="On" defaultRedirect="[my error page]"/>

过去我曾经允许使用以下设置

对1个特定子文件夹进行匿名身份验证
<location path="[my sub folder]">
    <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="false" />
                <anonymousAuthentication enabled="true" />
            </authentication>
        </security>
    </system.webServer>
</location>

<location path="[my sub folder]">
<system.web>
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>

但我不再使用该设置。

1 个答案:

答案 0 :(得分:5)

经过几天的探索,我终于找到了原因。事实证明,虽然我确实禁用了我个人网站的匿名身份验证,但我忘了在服务器级别关闭匿名身份验证。如果有人得到同样的错误,这就是我用来解决它的步骤:

  • 打开IIS控制面板。
  • 在左侧的树状视图中,选择您的服务器名称,而不是您的个人网站。
  • 在右侧新打开的面板中,双击IIS下的身份验证
  • 右键单击匿名身份验证,然后选择禁用。