拒绝直接访问文件夹(仅允许通过应用程序访问)

问题描述 投票:4回答:4

我需要防止某人直接访问pdf,而只能允许他们通过应用程序本身被拉。如何做到这一点?

asp.net security file-access
4个回答
2
投票

查看我关于此的博客文章:How to hide users files and folders on your website?

有两种解决方案:

1-您可以将“ UsersUploads”文件夹放在网站外目录,因此,如果您的网站位于“ c:\ website \ example.com”上,则表示您可以将“ UsersUploads”放在“ c:\ UsersUploads”中,就像IIS具有的无法控制此文件夹及其文件,您的网站代码将仍然可以作为常规物理路径访问此目录。

2-阻止IIS服务此文件夹:

IIS默认情况下不托管某些网站文件夹和文件,例如App_Data,App_Code,bin,App_GlobalResourses,App_LocalResources,Web.config,…。


11
投票

将其添加到顶级Web.config中,以阻止名为Reports的文件夹(您的文件夹名称随处可见)。这将使您的应用程序可以访问Reports / file.pdf,但对yoursite.com/Reports/file.pdf的外部请求将被阻止。

<configuration>
    <system.webServer>   
         <security>
          <requestFiltering>
            <hiddenSegments>
              <add segment="Reports" />
            </hiddenSegments>
          </requestFiltering>
        </security>
    </system.webServer>
</configuration>

0
投票

将文件放在app_data文件夹中,然后使用HttpHandler提供文件。如果您想隐藏它并使它看起来更整洁,则可以使用url重写。


-1
投票

在文件夹上设置权限以拒绝任何人的访问。请您的系统管理员来创建一个帐户,并授予对该文件夹的读取权限。然后在web.config文件中设置模拟以使用新帐户。

阅读本

http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx

© www.soinside.com 2019 - 2024. All rights reserved.