如何在Asp.net api上生成文件的唯一下载链接?我想通过webservice提供下载功能,每个用户一次只能获得一个独特的下载链接。
更新:
文件类型可以是xml,图像,文本和声音文件。
我正在尝试开发销售电子书的应用程序。
非常感谢
答案 0 :(得分:1)
您能否详细说明您的目标是什么?
您可以告诉我们的任何其他情况?
根据您的情况,它可能不会在很多方面。
寻找这个例子&会发给你更多 http://support.microsoft.com/kb/306654
如果适合您的情况,可以采取一种方式
虽然您可以使用GUID并可能将其与数据库中的用户相关联,但您需要创建一些关于应用程序如何排除GUID的业务逻辑。例如,您可能会说UserA具有GUID,如果在接下来的15分钟内使用该GUID,则UserA会自动登录,但在15分钟后强制用户使用用户名和密码。
类似地,您可以创建一个查询字符串,例如u = UserA& time = 1347& date = 01282001,然后通过某种哈希运行它。当它重新进入时,取消它(因此你不能使用MD5),检查时间戳并查看自创建时间戳以来已经存在多长时间。如果它在可接受的时间范围内,请让用户输入,如果不强制他们使用用户名和密码。这不需要您在数据库中与您的用户进行任何关联,因此与GUID相比可能是一个更简单的解决方案。
更新:如果我必须这样做,那么我将采取以下方法。您可以自行决定如何保护这些文件不被下载。
第1步:我将创建一个新表&用户付款后生成GUID&商店guid& userID,此表中的BookID信息。现在,您可以根据此信息生成链接
http://www.xyz.com/download.aspx?BookID=XX&UserID=XXX&GUID=guid-guid-guid-guid-guid-guid
步骤2:创建HTTPHandler以检查上面创建的表中是否存在此类记录,如果是,则允许用户下载该书,否则他将无法下载该书。
您可以将所有可下载文件保存在FOLDER下,该用户无权直接访问。
我希望你能理解我想说的话。
我会这样做,我可以将所有文件保存在受保护的文件夹中,也可以将它们存储在DATABASE中。
我希望这会给你一个起点。