本来直接给出要下载文件(比如 zip)的链接,就可以实现下载功能的。但是现在要实行权限控制,即登录了的会员才能下载,怎么办呢?
首先,把要下载的文件放在一个不能用链接直接访问的地方。
其次,在下载页,判断会员权限,有权限后执行如下代码:
说明:有的人用的是 Response.BinaryWrite 输出文件流,而不是用 Response.TransmitFile。效果是一样的,不过要注意,二者的具体技术细节是不同的,因此,Response.BinaryWrite 比较占用 IIS 资源,而且由于 BinaryWrite 是接收的文件流,所以一定要记得对 FileStream 使用 using,即 using (FileStream fs = new FileStream(...)),否则访问如果点击了下载,弹出下载对话框后,又点击了取消(不是点击保存),服务器资源就得不到释放,一会儿服务器就瘫了。