首页 新闻 赞助 找找看

文件下载设置权限,通过验证才能下载某一个文件,用户对文件是一对多的关系。怎么防止,直接路径下载?

0
悬赏园豆:30 [已解决问题] 解决于 2012-10-11 17:42
   我现在的文件下载,是一个用户验证权限之后,对应某些文件 为了防止,用户这样www.xxx.com/file/a.rar 直接路径下载
 
         我把file文件夹设置任何人不能访问,就form验证设置配置文件夹拒绝任何人访问那种。
然后用程序读取www.xxx.com/file/a.rar的内容。返回给客户端 不知道这样可以么 。
         下载向下面
 
  先验证是否有权限,然后:
FileInfo DownloadFile = new FileInfo(path);//path为文件路径             Response.Clear();             Response.ClearHeaders();             Response.Buffer = false;             Response.ContentType = "application/octet-stream";             Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("文件名称"), System.Text.Encoding.UTF8));             Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());             Response.WriteFile(DownloadFile.FullName);             Response.Flush();             Response.End();
 
大家觉得可以么,要怎么办!
问题补充:

文件路径(保存在表里面),订单表是用户编号和文件编号的对应,先根据用户编号,读到文件编号,然后读出路径,让程序去下载。,防止,用户通过路径直接访问!

小明同学的主页 小明同学 | 初学一级 | 园豆:12
提问于:2012-08-01 16:56
< >
分享
最佳答案
0

我个人想法 不知道行的同不,你定义一个<a />标签然后转到一个ashx文件中,在ashx中判断用户是否登陆(Session)如果登陆返回文件路径,如果没有登陆返回0 个人想法

会用到ajax技术

收获园豆:10
唯吴独尊 | 小虾三级 |园豆:707 | 2012-08-01 17:15
其他回答(2)
0

通过映射可以.写一个HttpModel.

收获园豆:20
Tom.汤 | 园豆:3026 (老鸟四级) | 2012-08-01 22:27
0

 想实现的是,用户要下载某个文件,必须先登录才能下载(即使用户知道真实的资源地址也不能下载)

      终于搞定了这个问题,作个记号

      当然我提供的资源是存在的哈

      测试地址

       http://www.interdrp.com/software/hotel/setup.zip (此资源要进系统才能下载)

       http://www.interdrp.com/software/goods/setup.zip (此资源不进系统就能下载)

     服务器配置文件

 


    <filter>
            <filter-name>FilterListFileLogin</filter-name>
            <filter-class>Www.Interdrp.Com.Filters.FilterListFileLogin</filter-class>

        <init-param>
                <param-name>redirectURL</param-name>
                <param-value>/PowerError.htm</param-value>
        </init-param>

        <init-param>
                <param-name>SessionKey</param-name>
                <param-value>UserName</param-value>
        </init-param>

        <init-param>
                <param-name>CheckURLList</param-name>
                <param-value>/software/hotel/setup.zip</param-value>
        </init-param>
        </filter>
        <filter-mapping>
            <filter-name>FilterListFileLogin</filter-name>
        <url-pattern>/*</url-pattern>
        </filter-mapping>
锐洋智能 | 园豆:197 (初学一级) | 2016-01-06 12:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册