我见过几个有动态下载链接的网站。
他们要求提供有效的电子邮件地址,并将动态创建的下载链接发送到该地址。 E.X. www.mysite.domain / hashvalue1
但他们是如何做到这一点的,因为该文件存在于特定位置的域中? www.mysite.domain /下载
有没有关于此的指南?
答案 0 :(得分:4)
他们使用“UrlRewrite”和ASP.NET HttpHandler。
UrlRewrite:http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
处理程序:Downlaod.ashx
using System;
using System.Web;
public class GetDownload : IHttpHandler
{
private static string file = "your file location";
public void ProcessRequest (HttpContext context)
{
if(UsersHasRights(context))
{
context.Response.TransmitFile(file);
}
}
public bool IsReusable
{
get { return false; }
}
}
答案 1 :(得分:3)
是的,Web URL不必与实际文件位置相对应。 在.NET中实现这一点的最简单方法是创建一个IHttpHandler,它使用基于哈希值的Response.TransmitFile。
在这种情况下,URL将是www.mysite.domain / file.ashx?hash = hashvalue1。
如果使用路由(ASP.NET 3.5 SP1)或某种URL重写器,则可以获得更好的URL。
答案 2 :(得分:0)