.NET网站 防止地址栏直接下载文件

问题描述

使用到的类是IHttpHandler,也就是每次请求asp.net网站上的TXT和XLS资源的时候,都会由这个类来请求处理DownloadHandler.cs的代码如下:publicDownloadHandler(){////TODO:在此处添加构造函数逻辑//}///<summary>///指示IHttpHandler实例是否可再次使用///</summary>publicboolIsReusable{get{returntrue;}}publicvoidProcessRequest(HttpContextcontext){UrireferrerUri=HttpContext.Current.Request.UrlReferrer;//获取下载之前访问的那个页面的uriUricurrentUri=HttpContext.Current.Request.Url;if(referrerUri==null)//没有前导页,直接访问下载页{//输出提示,可以根据自身要求完善此处代码HttpContext.Current.Response.Write("请不要盗链本站资源,请从首页访问。<ahref='../index.aspx'>进入首页</a>");return;}}WEB.config配置了<httpHandlers><addpath="*.txt"verb="*"type="DownloadHandler"/><addpath="*.xls"verb="*"type="DownloadHandler"/></httpHandlers>别人直接在软件里面打开我的txtxls等后缀的文件就会调用IHttpHandler判断是不是直接打开的。是的话不让直接打开!在本地测试正常。放到服务器上面。一点用没有。IHttpHandler没有被调用。不知道为什么。请高人指点!

解决方案

解决方案二:
没弄过,帮顶下
解决方案三:
随便搜了一个文章这个方式其实不现实。通过访问http://www.abc.com/mysite/dwnfile.ashx?name=1234.txthttp://www.abc.com/mysite/dwnfile.ashx?name=1234.xlsx这样下载更直接,更容易控制。
解决方案四:
这个方式其实不现实-->这个方式其实不可取你把所有的符合特定文件后缀的东西都截获了,你降低了网站的效率。
解决方案五:
在asp.net中,动态产生的数据文件都要放在app_data目录下面。否则放在外边,你的网站可能会不断重启。这是一个常识。
解决方案六:
参考iis中httphandler失效
解决方案七:
csdn的下载好像也没有解决这个问题..比如我有一个资源你必须要登陆还可以下载是吧..但是如果你没登陆直接打开依然可以下载...所以csdn都没解决你就先别操心了..不如研究点别的东西...
解决方案八:
学到一招....
解决方案九:
用个简单的方法,下载地址加个时间戳验证。以前网盘资源解析出来的直链就是这么干的
解决方案十:
你的xls文件难道不是从数据库导出的,然后给个动态名字吗?谁会把xls文件作为静态资源放到服务器上,有数据库不用,用它干嘛.既然是动态导出的,那么在点导出按钮之前,用户根本就不知道你的文件会叫什么名字,而且知道了也没有用,它现在还不存在.而如果是过去导出的,既然是刚刚用户自己导出过,那他即使不登陆再次下载,也没有什么问题啊而且导出的临时文件,你应该定时清理,而不是永久存放第二天用户还想下载这个文件,已经不存在了
解决方案十一:
参考突然发现刚没放链接给你放一下http://bbs.csdn.net/topics/390893900
解决方案十二:
<httpHandlers><addpath="*.txt"verb="*"type="DownloadHandler"/><addpath="*.xls"verb="*"type="DownloadHandler"/></httpHandlers>IIS6heIIS7放的地方是不同的~IIS7应用程序池中的托管管道模式经典和集成也会去读取web.config不同的位置httpHandlershttp://blog.csdn.net/bearwcn/article/details/6428570

时间: 2024-09-20 09:35:05

.NET网站 防止地址栏直接下载文件的相关文章

.NET网站 防止地址栏直接下载TXT文件

问题描述 我使用了,IHttpHandler(准确地说是一个接口),msdn对它的定义是:"定义ASP.NET为使用自定义HTTP处理程序同步处理HTTPWeb请求而实现的协定."HTTP处理程序是实现了System.Web.IHttpHandler接口的.NET组件,任何实现了IHttpHandler接口的类都可以用于处理输入的HTTP请求.也就是每次我们请求asp.net网站上的资源,都会由这个请求处理在本地测试正常.放到服务器上面.请求网站上面的TXT文件.这个接口就不工作.不知

登入网站自动下载文件 请教高人指点 。

问题描述 怎么实现WinForm窗体,点下载自动链接到到网站网址,然后下载文件等等最后保存到本地上去? 解决方案 解决方案二:WebClient去下载解决方案三:WebClient是哪里呢?解决方案四:你说的是WebClient类是吧解决方案五:直接链接到要下载的文件.解决方案六:WebClient或者HttpWebRequest或者直接调用系统浏览器打开地址弹出下载窗.

文件下载 断点续传-我想实现从外部网站下载文件到我们公司的服务器上,支持断点续传

问题描述 我想实现从外部网站下载文件到我们公司的服务器上,支持断点续传 我想实现从外部网站下载文件到我们公司的服务器上,支持断点续传并且用一个线程下载一个文件,请问哪位有什么思路或者源码参考.麻烦大家给我出出主意. 网上都是从服务器上下载到本地的案例.这种可以应用到我这种需求上吗? 顺便问下http协议和ftp协议下载文件是否支持下载到本地指定路径,对文件大小类型有没有限制. 用java语言 解决方案 1.先用代码解析外部网站下载页面获取下载地址 2.代码实现http协议请求解析得到的下载地址,

想写一个自动从某一个网站下载文件的软件

问题描述 如题,想写一个自动从某一个网站下载文件(如pdf等格式)的软件,用什么语言写呢?java可以么,还是只能用脚本语言?大家指点下,不是很懂 解决方案 解决方案二:大家帮帮忙

asp.net内网网站 smartscreen筛选器联机服务 下载文件卡在0%几分钟

问题描述 asp.net内网网站 smartscreen筛选器联机服务 下载文件卡在0%几分钟 我做个内部网的网站,客户用ie8下载网站的文件(客户是政府部门,打死不换浏览器),在下载进度提示框时候卡在0%,会有几分钟,下面有段文字:smartscreen筛选器联机服务不可用 .虽然一直等着最终还是会下载.但是卡的时间太长了. 我用本机下载.或者用其他浏览器都很快下载完成,IE11也可以. 个人怀疑是这个破smartscreen筛选器 卡几分钟是在尝试连接外网. 下载方法是通过a 链接.ashx

在终端上访问网站和下载文件

Linux 命令行工具很牛逼,Linux 命令行以及一些第三方应用让 Linux 变得更牛逼.Linux 命令行工具可以用于下载种子和文件,可以上网冲浪. 5 Command Line Internet Tools 本文推荐的5个强悍的上网工具方便实用,是居家旅行的必备物品. 1. rTorrent rTorrent 基于文本的 Torrent 客户端,用 C++ 调制而成,我们的目标是高性能!我们可运行在标准的 Linux 发行版中,包括 FreeBSD 和 Mac OS X. 安装 rTor

.net2003做的网站,在win7下,不能正常导出excel数据格式,总出现aspx格式的下载文件提示。

问题描述 别人做的.net2003做的网站,现在在win7下,不能正常导出excel数据格式,总出现aspx格式的下载文件提示.做的人早已离职了,来这里请教各位高手怎么解决. 解决方案 解决方案二:额...我也遇到过该问题,不过我碰到的是如果用IE或浏览器自带的下载的话下载的就是正确的Excel文件,如果是迅雷那就是Aspx页面这个时候要不就是1.按住Ctrl键不放然后在点击下载按钮.2设置迅雷取消监听浏览器这样就不使用迅雷下载.解决方案三:谢谢关注哈我这是刚刚安装win7系统,没有装迅雷那些下

移动网站开发教程五,php上传下载文件

一.文件的上传 1.客户端设置: (1).在 标签中将enctype和method两个属性指明相应的值. Enctype="multipart/form-data"; Method="POST" (2).form表单中设置一个hidden类型的input框,其中name的值为MAX_FILE_SIZE的隐藏值 2.服务器端设置: (1).$_FILES多维数组:用于存储各种上传文件有关的信息 (2).文件上传与php配置文件的设置,如以下php.ini文件中的一些指

【Android开发】网路编程及Internet应用-从指定网站上下载文件

利用前面学过的HttpUrlConnection和文件输入输出流来完成从Android端下载指定站点的文件. 写一个编辑框,用来输入要下载文件的URL路径,下面一个按钮,点击实现文件下载 res/layout/main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/and