保护文件夹中的MVC(Protecting folders in MVC)

2019-06-24 22:17发布

我有我的内容的文件夹的某些文件,我不希望用户能够下载未经授权。 如何防止只需键入...内容/ {文件名}到地址栏获得该文件的用户?

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