限制下载 Web.Config 中的一般文件
Restrict download for general files in Web.Config
我需要限制客户端对某些特定文件的访问。我想在我的 web.config 中执行此操作,而不是依赖于谁管理 IIS。
我知道可以限制对文件类型的访问(例如,所有 XML 文件),如下所示:How to restrict download of specified file types
但是,如何指定确切的文件?例如,我需要阻止对位于 ~/test/mytest.xml 的文件的直接访问
请记住,位于 ~/secondtest/mytest.xml 的此文件的另一个副本应该仍可供客户端使用。
唯一的选择是在 IIS 中?我无法在 web.config?
中控制它
谢谢!
您可以像下面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>
您可以限制登录、匿名、特定角色等对 web.config 中路径 and/or 文件的访问,例如:
<location path="filename or path">
<system.web>
<authorization>
<deny users="*" />
</authorization>
</system.web>
</location>
您可能还需要在配置中添加以下内容:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
我需要限制客户端对某些特定文件的访问。我想在我的 web.config 中执行此操作,而不是依赖于谁管理 IIS。
我知道可以限制对文件类型的访问(例如,所有 XML 文件),如下所示:How to restrict download of specified file types
但是,如何指定确切的文件?例如,我需要阻止对位于 ~/test/mytest.xml 的文件的直接访问 请记住,位于 ~/secondtest/mytest.xml 的此文件的另一个副本应该仍可供客户端使用。
唯一的选择是在 IIS 中?我无法在 web.config?
中控制它谢谢!
您可以像下面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>
您可以限制登录、匿名、特定角色等对 web.config 中路径 and/or 文件的访问,例如:
<location path="filename or path">
<system.web>
<authorization>
<deny users="*" />
</authorization>
</system.web>
</location>
您可能还需要在配置中添加以下内容:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>