如何在拥有匿名页面时使用Windows身份验证

时间:2013-04-26 16:15:10

标签: asp.net web-config

我有以下结构

  • login.aspx的
  • reallysecure / homepage.aspx

    我正在尝试允许匿名访问login.aspx和windows authenication to reallysecure / homepage.aspx

    我的IIS身份验证配置为仅启用匿名。

    这是我的web.config

    <?xml version="1.0"?>
    <configuration>
    <location path="reallysecure">
    <system.webServer>
      <security>
        <authentication>
          <windowsAuthentication enabled="true"></windowsAuthentication>
        </authentication>
      </security>
    </system.webServer>
    

    当我导航到login.aspx时,一切都按预期工作。但是,当我重定向到reallysecure / homepage.aspx时,我收到以下错误:

    HTTP Error 500.19 - Internal Server Error
    
    The requested page cannot be accessed because the related configuration data for the page is invalid.
    
    81:         <authentication>
      82:           <windowsAuthentication enabled="true"></windowsAuthentication>
     83:         </authentication>
    

    如何设置web.config和IIS来完成我需要的工作?

    谢谢!

  • 1 个答案:

    答案 0 :(得分:0)

    这是一个身份验证与授权的问题。 Windows身份验证应在根级别设置,并应用于整个站点。但是在根级别,您将指定允许匿名用户,并且在“reallysecure”中指定不允许匿名用户。

    因此,不是在该位置的身份验证部分,而是设置授权部分:

    <authorization>
    <deny users="?"/>
    </authorization>
    

    (?==匿名)

    而且,在根级别,它应该是:

    <authorization>
    <allow users="*"/>
    </authorization>
    

    (* ==所有用户,包括匿名用户)