回 帖 发 新 帖 刷新版面

主题:iis关于防止非法下载的问题

请教一下,如何配置iis,能够使会员下载文件,而非会员不能下载,如果非会员直接输入http://www.abc.com/a.rar时返回一个错误信息,请问这个问题怎么解决啊?[em1][em10]

回复列表 (共3个回复)

沙发

自己写一个下载定向文件,如down.aspx
下载的时候,用序号或者其它的指定文件,如down.aspx?id=123
在down.aspx运行的时候检测是否是会员,如果是会员,不要用重定向Redirect访问原始文件,用IO读取那个文件,然后手动Response.WriteByte输出到客户端

板凳

能不能说详细一点啊,你说的用IO读取那个文件,然后手动Response.WriteByte输出到客户端,这个具体是怎么回事?能发一段代码么?非常感谢。

3 楼

其实用不着WriteByte, 用WriteFile更直接
Response.Clear();
Response.Buffer = false;
Response.AddHeader("Content-Disposition", "attachment; filename=" + <文件名>);
Response.AddHeader("Content-Length", <文件大小>);
Response.ContentType = "application/octet-stream";
Response.Charset = <编码>;
Response.WriteFile(<文件服务器路径>);

那两个Header可选,都加上能够提供相信的文件信息

我来回复

您尚未登录,请登录后再回复。点此登录或注册