用asp.net(mvc)保护文件

时间:2010-01-16 16:20:10

标签: asp.net asp.net-mvc

我想保护特定目录中的文件,以便人们无法链接到它们 - 但我仍然需要我的程序能够呈现它们,因此保护实际文件夹的密码不起作用。有什么方法可以在ASP.NET MVC中实现这一点吗?显然它更多的是关于ASP.NET,而不是MVC - 但我不能使用Session State和Postback之类的东西......

1 个答案:

答案 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