如何在 Asp.net api 上生成文件的唯一下载链接?我想通过网络服务提供下载功能,每个用户一次只得到一个唯一的下载链接。
更新:
我不想浪费用户登录的时间。
一个用户可以下载多个文件。
文件类型可以是xml、图像、文本和声音文件。
我正在尝试开发一个销售电子书的应用程序。
非常感谢
如何在 Asp.net api 上生成文件的唯一下载链接?我想通过网络服务提供下载功能,每个用户一次只得到一个唯一的下载链接。
更新:
我不想浪费用户登录的时间。
一个用户可以下载多个文件。
文件类型可以是xml、图像、文本和声音文件。
我正在尝试开发一个销售电子书的应用程序。
非常感谢
你能告诉我们更多你想要达到的目标吗?
你能告诉我们任何其他情况吗?
根据您的情况,它可能不会以多种方式出现。
寻找这个例子&会给你更多 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 以检查您在上面创建的表中是否存在此类记录,如果存在,则允许用户下载该书,否则他应该无法下载该书。
您可以将所有可下载的文件保存在用户无法直接访问的文件夹下。
我希望你明白我想说什么。
我就是这样做的,我可以将所有文件保存在受保护的文件夹中,也可以将它们存储在数据库中。
我希望这会给你一个起点。