我可以使用通配符在web.config中的位置路径属性?(Can I use wildcards i

2019-09-01 14:45发布

在IIS 7我试图拒绝访问所有文件的扩展名为.XML为所有用户。

我想在我的web.config文件的如下设置:

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

但随后获得在内部服务器错误的任何文件的结果。

它的工作原理,如果我拒绝访问的单个文件,但这个解决方案不给我买多少,因为我不知道提前所有.xml文件。

Answer 1:

试试这个:

<configuration>
    <system.web>
        <httpHandlers>
            <add path="*.xml" verb="*" 
             type="System.Web.HttpNotFoundHandler" />
        </httpHandlers>
    </system.web>
</configuration>

顺便说一句,你可以或者所有的XML文件的存储内的App_Data目录。 任何类型的此目录中的存储文件将不会投放到网上。



Answer 2:

另一种方法是使用请求过滤器:

<system.webServer>
  <security>
    <requestFiltering>
      <fileExtensions>
        <add fileExtension=".xml" allowed="false" />
      </fileExtensions>
    </requestFiltering>
  </security>
</system.webServer>


文章来源: Can I use wildcards in the web.config location path attribute?