IIS在子文件夹中禁用身份验证

时间:2018-02-06 19:08:22

标签: asp.net iis web-config authorization

在我的应用程序中的web.config是:

<authentication mode="Forms">
  <forms loginUrl="app/Login.aspx" name=".ASPXFORMSAUTH" protection="All" slidingExpiration="true" timeout="10"/>
</authentication>
<authorization>
  <deny users="?"/>
  <allow users="*"/>
</authorization>

在app文件夹中的web.config是:

<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <directoryBrowse enabled="false"/>
    <defaultDocument enabled="true">
      <files>
        <clear/>
        <add value="Default.aspx"/>
      </files>
    </defaultDocument>
    <handlers accessPolicy="Read, Script, Execute"/>
    <staticContent enableDocFooter="false">
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:00"/>
    </staticContent>
    <asp enableParentPaths="false" scriptLanguage="VBScript" bufferingOn="true">
      <limits scriptTimeout="00:01:30"/>
      <session allowSessionState="true" timeout="00:20:00"/>
    </asp>
    <security>
      <authentication>
        <anonymousAuthentication enabled="true" password="" userName="IUSR"/>
        <basicAuthentication enabled="false" realm="" defaultLogonDomain=""/>
        <windowsAuthentication enabled="false"/>
        <digestAuthentication enabled="false" realm=""/>
      </authentication>
    </security>
    <httpLogging dontLog="true"/>
  </system.webServer>
</configuration>

这有效,但我想为匿名用户提供my_public文件夹的访问权限。 在my_public文件夹中是site about.aspx。

my_public文件夹中的web.config是:

<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <directoryBrowse enabled="false"/>
    <defaultDocument enabled="true">
      <files>
        <clear/>
        <add value="Default.aspx"/>
      </files>
    </defaultDocument>
    <handlers accessPolicy="Read, Script, Execute"/>
    <staticContent enableDocFooter="false">
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:00"/>
    </staticContent>
    <asp enableParentPaths="false" scriptLanguage="VBScript" bufferingOn="true">
      <limits scriptTimeout="00:01:30"/>
      <session allowSessionState="true" timeout="00:20:00"/>
    </asp>
    <security>
      <authentication>
        <anonymousAuthentication enabled="true" password="" userName="IUSR"/>
        <basicAuthentication enabled="false" realm="" defaultLogonDomain=""/>
        <windowsAuthentication enabled="false"/>
        <digestAuthentication enabled="false" realm=""/>
      </authentication>
    </security>
  </system.webServer>
  <system.web>
    <authorization>     
    <allow roles="*"/>
  </authorization>
</system.web>
</configuration>

当用户访问my_public / about.aspx时,总是重定向到app / login.aspx。 用户应该在annonymus时重定向到my_public / about.aspx。

1 个答案:

答案 0 :(得分:0)

将公共web.config上的授权部分更改为

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

这将允许匿名访问。