2014-03-03 84 views
1

我在我的网站创建了一个受保护的区域,其中只有注册用户可以登录才能下载受限制的应用程序(exe)。但他们可以复制下载链接,并在互联网上提供它,所以我试图找到隐藏下载链接的最简单方法(如果可能,使用ASP经典)。如何隐藏下载链接

这是我到目前为止:http://forums.aspfree.com/code-bank-54/download-manager-downloading-files-secure-location-classic-asp-65239.html。但是,使用此下载管理器时,该exe应用程序失去无法解释其数字签名:(

请,任何人都可以给我一些建议吗?也许使用PHP或Flash?

谢谢!

+0

简单的解决方案:。嵌入在下载网址一次性令牌一旦令牌的使用,您记录它作为使用,决不允许它再次使用 –

+0

@Marc B,我想理解你的想法...可以哟你举个例子吗?也许我可以获得更多信息的链接?谢谢! – Guybrush

+0

@Paruba在你的数据库中存储了一些唯一的关键字(token),然后在你提供的链接(建议将它编码为[tag:Base64])时将它用作QueryString参数,当用户通过令牌访问页面时您可以通过调用数据库来检查它,然后禁用它(删除或归档它)。这种方法的美妙之处在于,你也可以做一些事情,比如允许一定数量的下载,然后禁止,所有这些都是通过根据你的令牌存储一些元数据,比如'download count','last download'(datetimestamp)......可能性是无止境的。 – Lankymart

回答

2

下面是解我发现,使用ASP经典:

<% 
Option Explicit 
Response.Buffer = True 
If (not Session("Logged")) Then Response.End 
Dim objFso 
Dim objStream 
Dim strFileName 
Dim strFilePath 
strFileName = "App.exe" 
strFilePath = "d:\yoursitefolder\protectedfolder\" 
Set objFso = Server.CreateObject("Scripting.FileSystemObject") 
If objFso.FileExists(strFilePath & strFileName) Then 
    Response.AddHeader "Content-disposition", "filename=" & strFileName 
    Response.ContentType = "application/octet-stream" 
    Response.AddHeader "Pragma", "no-cache" 
    Response.AddHeader "Expires", "0" 
    Set objStream = Server.CreateObject("ADODB.Stream") 
    objStream.Type = 1 
    objStream.Open 
    objStream.LoadFromFile strFilePath & strFileName 
    Response.BinaryWrite(objStream.Read()) 
    objStream.Close 
    Set objStream = Nothing 
End If 
Set objFso = Nothing 
%> 
+0

不知道如何解决您的问题,除非我错过了解问题...实际上我看到他们只需要有一个有效的会议,遗憾的是由于某种原因,链接来自一个不受控制的来源,例如电子邮件。最简单的解决方案往往是最好的。 – Lankymart