位置路径拒绝不会在system.web中阻止静态文件夹

时间:2019-04-08 12:08:23

标签: asp.net security iis forms-authentication

我试图拒绝用户访问静态文件夹的内容:

<location path="log4">
    <system.web>
        <authorization>
           <deny users="*"/>
        </authorization>
    </system.web>
</location> 

但这失败了。

我找到了这个问题的答案:

First answer是我的问题的解决方案:

<security>
  <requestFiltering>
    <hiddenSegments>
      <add segment="Uploads"/>
    </hiddenSegments>
  </requestFiltering>
</security>

那很好。

但是,当我更靠近Web配置时,我还有其他部分可能会限制或允许用户访问图像或CSS之类的文件夹,但以下输入请求不被考虑,它允许任何人访问它们。

<location path="images">
    <system.web>
        <authorization>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>
<location path="css">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

在同一线程的第二个most upvoted answer中,我认为它可以工作,但不能。

<?xml version="1.0"?>
<configuration>
    <system.web>
        <authorization>
            <allow roles="Administrator"/>
            <deny users="*" />              
        </authorization>
    </system.web>
</configuration>

This可能是我第二部分问题的解决方案:

<modules runAllManagedModulesForAllRequests="true"></modules>

但是,如here所述,这会导致性能问题。

还提到了

Here例如.xml文件的设置处理程序,但我需要在文件夹级别使用。

我的问题是如何在不将runAllManagedModulesForAllRequests设置为true的情况下,拒绝/允许访问具有位置路径的静态文件夹内容。

我的应用程序可以进行表单身份验证,并且可以在具有集成模式的applicaton pool .net 2.0上使用。

1 个答案:

答案 0 :(得分:0)

您可以在web.config中设置“拒绝用户”,如下所示:

<location path="s3">
<system.web>
  <authorization>
    <deny users="*" />
  </authorization>
</system.web>

enter image description here

enter image description here 您还可以参考下面的文章以获取更多详细信息:

Setting authorization rules for a particular page or folder in web.config

关于, 贾帕。