我想保护特定目录中的文件,以便人们无法链接到它们 - 但我仍然需要我的程序能够呈现它们,因此保护实际文件夹的密码不起作用。有什么方法可以在ASP.NET MVC中实现这一点吗?显然它更多的是关于ASP.NET,而不是MVC - 但我不能使用Session State和Postback之类的东西......
答案 0 :(得分:3)
您可以将该目录放在Web应用程序的根目录之外(以便无法使用某些复制的URL访问它),也可以放入使用web.config文件拒绝任何读取权限的目录中。
然后通过需要授权当前用户的操作来访问文件,例如:
public class FileController : Controller
{
[Authorize]
public ActionResult Get(string file)
{
return new File(Path.Combine(_rootPath, file);
}
}
然后,您可以通过操作网址访问这些文件,例如http://server/app/File/Get/test.txt
。