限制Web.Config中的常规文件下载

时间:2015-01-14 15:48:36

标签: asp.net iis web-config

我需要限制客户端访问某些特定文件。我想在我的web.config中这样做,而不是依赖谁管理IIS。

我知道可以限制对文件类型的访问(例如,所有XML文件),如下所示:How to restrict download of specified file types

但是,如何指定确切的文件?例如,我需要阻止直接访问〜/ test / mytest.xml中的文件 请记住,位于〜/ secondtest / mytest.xml的该文件的另一个副本仍然可供客户端使用。

唯一的选择是在IIS?我无法在web.config中控制它?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以直接在web.config中指定文件名,如下所示。

<system.web>
    <httpHandlers>
        <add path="test/mytest.xml" verb="*" type="System.Web.HttpForbiddenHandler"/>
    </httpHandlers>
</system.web>

对于IIS7以上使用以下内容。

<system.webServer>
    <handlers>
      <add path="test/mytest.xml" verb="*" type="System.Web.HttpForbiddenHandler" name="XML"/>
    </handlers>
</system.webServer>

答案 1 :(得分:0)

您可以限制从登录,匿名,特定角色等访问web.config中的路径和/或文件:

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

您可能还需要在配置中添加以下内容:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
<system.webServer>