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

时间:2011-07-25 20:49:24

标签: asp.net security file-access

我需要阻止某人直接访问pdf,而只是允许他们通过应用程序本身。怎么办呢?

4 个答案:

答案 0 :(得分:10)

将其添加到顶级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>

答案 1 :(得分:1)

查看我的博客文章: 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,...

答案 2 :(得分:0)

将文件放在app_data文件夹中,然后使用HttpHandler提供文件。如果要隐藏它并使其看起来更清晰,可以使用URL重写。

答案 3 :(得分:-1)

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

阅读本文

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