我需要防止某人直接访问pdf,而只能允许他们通过应用程序本身被拉。如何做到这一点?
查看我关于此的博客文章: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,…。
将其添加到顶级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>
将文件放在app_data
文件夹中,然后使用HttpHandler
提供文件。如果您想隐藏它并使它看起来更整洁,则可以使用url重写。
在文件夹上设置权限以拒绝任何人的访问。请您的系统管理员来创建一个帐户,并授予对该文件夹的读取权限。然后在web.config文件中设置模拟以使用新帐户。
阅读本
http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx