日期:2014-05-18  浏览次数:20486 次

怎么防止直接下载文件
请问大,我怎么样才能防止怎么防止直接文件下载。假如网站一个会员下载这个文件后把文件地址发给别人,让别人通过这个地址直接下载。怎么样才能防止这样非会员通过地址真接写下载那。asp.net下怎么来写那。听说可以通过httphandler可以写,那位高手能指点一下,谢谢了。给个列子也行。

------解决方案--------------------
/download.aspx?file=xxxx

你可以在在那个aspx,或者ashx里处理.举个例子,用流的方式写出来.如果是mp3文件
C# code

 System.IO.FileInfo file = new System.IO.FileInfo(fileName);
            if (file.Exists)
            {
                System.IO.FileStream fs = null;
                fs = System.IO.File.Open(fileName, System.IO.FileMode.Open);
                byte[] btFile = new byte[fs.Length];
                fs.Read(btFile, 0, Convert.ToInt32(fs.Length));
                fs.Close();

                System.Web.HttpContext.Current.Response.Clear();
                System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
                System.Web.HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
                System.Web.HttpContext.Current.Response.ContentType = "audio/mpeg3";
                System.Web.HttpContext.Current.Response.BinaryWrite(btFile);
            }