2010-11-21 244 views
0

我需要非常先进有效的防止用户在asp.net中直接从网站下载文件的方法。防止用户直接从网站下载文件,如何?

方法应该 -

限制下载, 限时间,限 请求, 等

而是应该通过下载活跃登录用户

+2

您需要提供非常详细的方案得到任何明智的答案。提供所有相关详细信息,以帮助人们提供有用的答案。就目前而言,您的问题的答案是 - 不要将文件放在服务器上 - 这样,没有人可以下载它。 – 2010-11-21 13:52:48

+0

什么样的文件? – Ruel 2010-11-21 13:55:46

+0

任何类型的文件(.zip,.exe,.msi,.rar) – Code0987 2010-11-21 14:11:28

回答

1

存储文件夹中的文件,这是无法通过IIS访问(即未下你的web应用程序的根)

创建ashx的通用处理器,这需要文件标识符(或者文件名,或某种形式的ID )作为QueryString参数。

在那个.ashx中,执行你想要执行的任何检查:用户是否登录?他们是否下载过多文件?等

然后,如果你决定他们应该被允许下载,设置适当的响应头和文件写出来,希望Response.OutputStream

+0

我很满意。谢谢 – Code0987 2010-11-22 09:28:45

2

从服务器上删除该文件。

任何试图下载它的用户都不会成功。

2

您可以将文件放入目录并将该目录配置为不可由公共用户访问。

+0

但非公共用户分组(自由,正常,电源) – Code0987 2010-11-21 14:12:38

+0

一个选项可能是创建嵌套目录。 例如,创建一个名为“free_user_files”的目录。在此目录内创建另一个目录“normal_user_files”。 并在“normal_user_files”中创建另一个名为“power_user_files”的目录。 然后执行以下操作: 一)给所有3组,获得了“normal_user_files” B)只给正常和电力用户,获得了“normal_user_files” C)最后,只给电力用户,访问到最内层的目录“power_user_files”。 – Hps 2010-11-21 19:10:58