.net MVC:如何仅向授权用户提供静态文件

时间:2016-12-30 03:51:51

标签: c# asp.net-mvc

我的网站中有静态文件,如:

  

http://myurl.com/Content/a.html

     

http://myurl.com/Content/b.html

...等

我想在访问时验证用户的身份验证。应通过数据库的数据检查身份验证。

我的框架:ASP.NET MVC5

4 个答案:

答案 0 :(得分:1)

不要将文件放在传统方法/myserver/myfile.html中,而是考虑添加一个操作,该操作在对用户进行身份验证后返回文件:

[Authorize]
public ActionResult GetFile(string name)
{
   // return the file
}

您也可以使用OutputCache属性来缓存您的静态文件,以便每次都不会请求它(如果您确定您的文件内容不会被更改)

答案 1 :(得分:0)

确保使用web.config中的authorization元素对用户进行身份验证。如果所有静态页面都在名为StaticPages的文件夹中,请将web.config文件添加到该文件夹​​并插入以下代码。

<location path="/StaticPages">
 <system.web>
  <authorization>
    <deny users="?"/>
  </authorization>
</system.web>

https://msdn.microsoft.com/en-us/library/8d82143t(v=vs.85).aspx

答案 2 :(得分:0)

我终于通过this way解决了这个问题,重要的是我必须用绝对路径替换静态文件的相对路径。

答案 3 :(得分:0)

在您的静态文件夹中创建web.config文件,然后插入此代码。

<configuration>
  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>
</configuration>