【问题标题】:Allow IIS 7.5 from serving static files through ASP.NET pipeline允许 IIS 7.5 通过 ASP.NET 管道提供静态文件
【发布时间】:2015-04-02 23:44:19
【问题描述】:

我有几个文件夹要被排除在阻止之外,例如 web.config 中的内容、Javascript 和脚本。请帮助我实现这一目标。

这里是配置:

<location path="TechDocs">
<system.web>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>
</location>
<location path="Scripts">
<system.web>
  <authentication mode="None" />
  <authorization>
    <allow users="*" />
  </authorization>
  </system.web>
</location>
<location path="Content">
<system.web>
  <authentication mode="None" />
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>
</location>
 <location path="Javascript">
<system.web>
  <authentication mode="None" />
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>
</location>

【问题讨论】:

  • 你现在得到这些的 401 了吗
  • 是..401 未经授权

标签: c# asp.net iis web-config config


【解决方案1】:

我认为你做不到。

Microsoft 的一般经验法则是,拒绝总是胜过允许,因此,如果您在根级别拒绝访问,那么您将无法授予较低级别的访问权限,除非您可以删除从根级别继承的权限。我认为没有办法删除那些继承的权限。我试过把它放在下面,但这是无效的。

因此,您必须在需要拒绝访问的每个文件夹上设置拒绝所有用户,您不能将其默认为拒绝。另外,如果所有用户都拒绝该内容,也许您不应该在 IIS 站点中包含大量内容?

【讨论】:

    【解决方案2】:

    这就是我们使用的

        <location path="Scripts">
        <system.web>
          <authorization>
            <allow users="*" />
          </authorization>
        </system.web>
      </location>
      <location path="Css">
        <system.web>
          <authorization>
            <allow users="*" />
          </authorization>
        </system.web>
      </location>
    

    您必须确保您没有拦截请求并针对上述任何资源发出 401 Unauthorized 的 httpmodule

    以下是我的路由配置,以便 MVC 不会意外地将请求路由到 MVC,您可以应用任何一种

                routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" });
                routes.IgnoreRoute("{*staticfile}", new { staticfile = @".*\.(ico|css|js|gif|jpg|woff|eot|svg|eot|ttf|otf)(/.*)?" });
    
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.IgnoreRoute("{resource}.wdgt/{*pathInfo}");
                routes.IgnoreRoute("ChartImg.axd/{*pathInfo}");
                routes.Ignore("{*pathInfo}", new { pathInfo = @"^.*(ChartImg.axd)$" });
                routes.IgnoreRoute("{resource}.svc");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 2011-01-27
      • 1970-01-01
      相关资源
      最近更新 更多