现在随着FlashGet和xunlei等下载工具的日益普及,下载网站的一些下载地址都能直接被捕获到,,但是有些时候为了防盗链或权限限制不想对地址进行暴露,对于Asp.net下的防盗链有很多方法,我这里写了一种(51aspx的新版本将会采纳)希望大家讨论一下:
stringfilename="51aspx_Test.rar";

if(filename!="")

{
stringpath=Server.MapPath(filename);
System.IO.FileInfofile=newSystem.IO.FileInfo(path);
if(file.Exists)

{
Response.Clear();
Response.AddHeader("Content-Disposition","attachment;filename="+file.Name);
Response.AddHeader("Content-Length",file.Length.ToString());
Response.ContentType="application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
}
else

{
Response.Write("该文件不存在,请联系51aspx管理员!");
}
}
当然这样也有弊端,就是用户只能用IE单线程进行下载,对于分量小的下载地址来说这个无所谓了,如果各位还有其他更好的办法,欢迎补充~~
stringfilename="51aspx_Test.rar";
if(filename!="")
{
stringpath=Server.MapPath(filename);
System.IO.FileInfofile=newSystem.IO.FileInfo(path);
if(file.Exists)
{
Response.Clear();
Response.AddHeader("Content-Disposition","attachment;filename="+file.Name);
Response.AddHeader("Content-Length",file.Length.ToString());
Response.ContentType="application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
}
else
{
Response.Write("该文件不存在,请联系51aspx管理员!");
}
}
当然这样也有弊端,就是用户只能用IE单线程进行下载,对于分量小的下载地址来说这个无所谓了,如果各位还有其他更好的办法,欢迎补充~~
本文介绍了一种在ASP.NET环境下实现防盗链的方法,通过服务器端响应控制,避免资源被非法引用,适合小文件的单线程下载场景。
2万+

被折叠的 条评论
为什么被折叠?



