.NET MVC:我如何提供静态文件只对授权用户
问题描述:
有在我的网站的静态文件,如:.NET MVC:我如何提供静态文件只对授权用户
...等
我想在访问时验证用户的身份验证。认证应该由数据库的数据检查。
我的框架:ASP.NET MVC5
答
确保用户在你的web.config使用授权元素认证。如果您的所有静态页面都位于名为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
答
而不是把你的文件,在传统的方法/myserver/myfile.html
的,考虑增加其authinticating用户后返回文件的操作:
[Authorize]
public ActionResult GetFile(string name)
{
// return the file
}
您可能还使用OutputCache
属性来缓存你的静态文件,这样它就不会每次都被请求(如果你确定你的文件内容不会改变)
理想情况下,它应该通过Controller和Action方法重定向,您可以在其中执行认证和授权。 –
我试过这个[链接](http://stackoverflow.com/questions/41357311/net-mvc-how-to-hide-the-true-url),但从静态HTML JavaScript文件是相对路径,所以当我在我的Action中使用http://myurl.com/Content/a.html作为源代码时,它将从http://myurl.com/MyController/MyAction/abc.js获取javascript文件,它显示错误.. –