保护ASP.NET中的单个文件

时间:2010-03-09 17:55:10

标签: asp.net security forms-authentication

我有一个用户可以访问一次性网址的场景。 当用户点击该URL时,该用户可以使用特定文件。

我在网站上有很多文件,但只希望该用户可以访问某些文件。

我有关于生成经过身份验证的cookie并使用基于表单的身份验证并将权限应用于某个文件夹,但我需要对单个文件进行授权。并且文件将一直在变化。

让用户只能访问特定文件的最佳方法是什么? (我不会显示其他文件,但如果在URL中键入其他文件,我仍然不希望这些文件可用)

4 个答案:

答案 0 :(得分:3)

我会创建一个.ashx(处理程序文件)并将文件提供给用户(加载到内存中,然后通过将文件推送到内容流来写出内容)。这样,最终用户永远不会拥有系统上的实际文件的权限,但仍然可以访问它们。然后,您的代码可以控制每个文件可供用户使用的时间和长度。

答案 1 :(得分:1)

我会提供实际文件检索的抽象。这样用户永远不会看到文件名。像www.example.com/File.aspx?id=SOMERANDOMGUID

这样的东西

RANDOMGUID可以引用后端的文件。

答案 2 :(得分:0)

如果您有足够的磁盘空间,一种方法是将文件复制到随机生成的文件夹中,以便用户文件的URL对每个用户都是唯一的。

答案 3 :(得分:0)

我认为如果您的文件与ID相关联并且路径保存在数据库中会更容易。这样您就可以使用ID拉取文件。