我需要阻止某人直接访问 pdf,而只允许他们通过应用程序本身被拉取。如何才能做到这一点?
4 回答
将此添加到您的顶级 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-您可以将“UsersUploads”文件夹放在网站目录之外,因此如果您的网站存在于“c:\website\example.com”上,您可以将“UsersUploads”放在“c:\UsersUploads”中,就像 IIS 有无法控制此文件夹及其文件,并且您的网站代码仍然可以作为正常物理路径访问此目录。
2-停止 IIS 服务此文件夹:
默认情况下,IIS 不提供某些网站文件夹和文件,例如 App_Data、App_Code、bin、App_GlobalResources、App_LocalResources、Web.config 等。
将文件放在文件app_data
夹中,然后使用 aHttpHandler
来提供文件。如果你想隐藏它并让它看起来更干净,你可以使用 url 重写。
设置文件夹的权限以拒绝任何人访问。请您的系统管理员创建一个帐户并授予对该文件夹的读取权限。然后在 web.config 文件中设置模拟以使用新帐户。
读这个
http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx