我有我的内容的文件夹的某些文件,我不希望用户能够下载未经授权。 如何防止只需键入...内容/ {文件名}到地址栏获得该文件的用户?
Answer 1:
有一对夫妇的可能性。 第一个包括到使用<location>
在你的web.config标签:
<location path="Content">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
另一种可能性是将这些文件在那里没有人能够访问(如例如App_Data文件夹),然后有一个控制器的动作,这将有助于那些将与被装饰文件的文件夹内[Authorize]
属性。
Answer 2:
它不会为我工作。
<configuration>
<appSettings>
...
</appSettings>
<system.web>
...
</system.web>
<system.webServer>
...
</system.webServer>
<location path="Content">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
我跑我的MVC 4.0应用程序,登录和注销,无法访问任何应用程序页面,但仍然可以通过如直接链接来访问文件
http://localhost:80966/Content/Files/home.jpg
Answer 3:
那么一个办法就是把它IIS的范围之外,所以不是下让它们C:\inetpub\wwwroot
它更改为类似C:\temp\files
。
在您的数据库与文件名称相关联的GUID并使用GUID来显示的链接文件。
在你的控制器动作,您将只接受GUID,得到的文件名,然后服务于您的响应文件。
文章来源: Protecting folders in MVC