0

如何在 Asp.net api 上生成文件的唯一下载链接?我想通过网络服务提供下载功能,每个用户一次只得到一个唯一的下载链接。

更新:

  • 我不想浪费用户登录的时间。

  • 一个用户可以下载多个文件。

  • 文件类型可以是xml、图像、文本和声音文件。

    我正在尝试开发一个销售电子书的应用程序。

非常感谢

4

1 回答 1

1

你能告诉我们更多你想要达到的目标吗?

  1. 我想知道用户是否注册?
  2. 同一个用户会下载超过 1 个文件吗?
  3. 什么类型的文件?

你能告诉我们任何其他情况吗?

根据您的情况,它可能不会以多种方式出现。

寻找这个例子&会给你更多 http://support.microsoft.com/kb/306654

如果适合您的场景,一种方法

虽然您可以使用 GUID 并将其与数据库中的用户相关联,但您需要围绕该 GUID 如何被应用程序排除在外创建一些业务逻辑。例如,您可能会说 UserA 有一个 GUID,如果该 GUID 在接下来的 15 分钟内使用,则让 UserA 自动登录,但在 15 分钟后强制用户使用用户名和密码。

同样,您可以创建一个查询字符串,例如 u=UserA&time=1347&date=01282001,然后通过某种散列运行它。当它回来时,取消它(所以你不能使用 MD5),检查时间戳,看看它自创建时间戳以来已经过去了多长时间。如果在可接受的时间范围内,让用户输入,如果不是,则强制他们使用用户名和密码。这不需要您与数据库中的用户关联任何内容,因此与 GUID 相比,这可能是一个更简单的解决方案。

更新:如果我必须这样做,那么我将采用以下方法。如何保护这些文件不被下载取决于您。

第 1 步:一旦用户付款并在此表中存储 guid 和用户 ID、BookID 信息,我将创建一个新表并生成一个 GUID。现在您可以根据此信息生成链接

http://www.xyz.com/download.aspx?BookID=XX&UserID=XXX&GUID=guid-guid-guid-guid-guid-guid

第 2 步:创建一个 HTTPHandler 以检查您在上面创建的表中是否存在此类记录,如果存在,则允许用户下载该书,否则他应该无法下载该书。

您可以将所有可下载的文件保存在用户无法直接访问的文件夹下。

我希望你明白我想说什么。

我就是这样做的,我可以将所有文件保存在受保护的文件夹中,也可以将它们存储在数据库中。

我希望这会给你一个起点。

于 2012-10-23T04:58:03.653 回答