我的Content文件夹中有一些文件,我不希望用户在未经授权的情况下下载。如何通过在地址栏中键入... Content / {filename}来阻止用户访问该文件?
答案 0 :(得分:3)
有几种可能性。第一个包括在web.config中使用<location>
标记:
<location path="Content">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
另一种可能性是将这些文件放在无人可以访问的文件夹中(例如App_Data文件夹),然后让控制器操作为那些将使用[Authorize]
属性修饰的文件提供服务。 / p>
答案 1 :(得分:1)
它对我不起作用。
<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
答案 2 :(得分:0)
一种方法是将其置于IIS的上下文之外,因此不要将它们置于C:\inetpub\wwwroot
下
将其更改为C:\temp\files
。
具有与文档名称关联的GUID,并使用GUID显示文件的链接。
在您的控制器操作中,您只需接受GUID,获取文件名,然后在您的回复中提供该文件。