首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>ASP.NET>如何防止asp.net盗链下载问题的实现方法
如何防止asp.net盗链下载问题的实现方法
来源: 发布时间:2008-05-13 发布人: 浏览: 人次   字体: [ ]  

有时在网络上经常碰到直接拷贝一个类似http://193.100.100.56/TestWebSolution/WebApplication1/test.rar地址准备下载test.rar文件时,却被告知没有登录或者直接跳转到其他页面的情况,然后等登录后直接下载该文件。要实现上面情况,在.NET世界里是比较容易的。
1、  首先创建一个类库项目ClassLibrary1,实现如下(点这里查看):
using System;
using System.Web;    // 引用System.Web组件
namespace ClassLibrary1
{
    public class MyHandler : IHttpHandler
    {
        public MyHandler()
        {
        }
        #region IHttpHandler 成员
        public void ProcessRequest(HttpContext context)
        {   // 跳转到WebForm1.aspx,由WebForm1.aspx输出rar文件
            HttpResponse response = context.Response;
    response.Redirect("http://193.100.100.56/TestWebSolution/WebApplication1/WebForm1.aspx");
        }
        public bool IsReusable
        {   get
            {   // TODO:  添加 MyHandler.IsReusable getter 实现
                return true;
            }}
        #endregion
    }}

2、  创建测试用的Web项目WebApplication1。在配置文件Web.config文件节点里增加如下节点:

  <httpHandlers>
               <add verb="*" path="*.rar" type="ClassLibrary1.MyHandler, ClassLibrary1" />
httpHandlers>

3、  在WebForm1.aspx里增加一个文本为“下载”的Button,其Click事件如下(点这里查看):

FileInfo file = new System.IO.FileInfo(@"G:\WebCenter\TestWebSolution\WebApplication1\test.rar");
// FileInfo 类在 System.IO 命名空间里
              Response.Clear();
              Response.AddHeader("Content-Disposition", "filename=" + file.Name);
              Response.AddHeader("Content-Length", file.Length.ToString());
              string fileExtension = file.Extension;
              // 根据文件后缀指定文件的Mime类型
              switch (fileExtension)
              {
                   case ".mp3":
                       Response.ContentType = "audio/mpeg3";
                       break;
                   case "mpeg":
                       Response.ContentType = "video/mpeg";
                       break;
                   case "jpg":
                       Response.ContentType = "image/jpeg";
                       break;
                   case "........等等":
                       Response.ContentType = "....";
                       break;
                   default:
                       Response.ContentType = "application/octet-stream";
                       break; 
            }
              Response.WriteFile(file.FullName);
              Response.End();

4、  最后一步就是在IIS里增加一个应用程序扩展。在“默认网站”->“属性”->“主目录”->“配置”。在弹出的“应用程序配置”窗口里按“添加”,在弹出的“添加/编辑应用程序扩展名映射”窗口里“可执行文件”选择C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,在扩展名里输入“.rar”,然后确定即可。

5、  在IE里输入http://193.100.100.56/TestWebSolution/WebApplication1/test.rar,会立即跳转到http://193.100.100.56/TestWebSolution/WebApplication1/WebForm1.aspx,然后按WebForm1.aspx的“下载”按钮就可以下载test.rar了。


相 关 文 章   发布商链接
·实例讲解ASP.NET上传大文件的解决方...
·asp.net文件下载显示进度条的代码
·ASP.NET实现Office文档的分类管理代...
·让FileUpload控件在IE和FireFox中的...
·ASP.NET配置Word的操作权限
·javascript实现TreeView 控件不回发...
·实现多列,带图片的DropDownList代码
·asp.net实现将Excel文件导入到SQL数...
·asp.net动态生成txt文本文件供用户下...
·asp.net读取Xml文件并进行DropDownLi...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·如何实现在DataList控件中的D...
·实例讲解asp.net生成高质量缩
·asp.net适用于IE或FireFox的...
·举例详解C#代码与javaScript...
·asp.net无刷新上传文件
·在Ie中保存图片时出现"800700...
·asp.net文件上传大小限制的控
·asp.net动态生成txt文本文件...
·asp.net实现将Excel文件导入...
·实现多列,带图片的DropDownLi...
·javascript实现TreeView 控件
·ASP.NET配置Word的操作权限
·让FileUpload控件在IE和FireF...
·ASP.NET实现Office文档的分类
·asp.net文件下载显示进度条的
热 门 文 章
·asp.net(C#)上传下载及文件管...
·图解asp.net如何用excel做报...
·asp.net无刷新上传文件
·Asp.Net防止刷新重复提交数据...
·asp.net实现将Excel文件导入...
·asp.net中Web.Config配置文件...
·ASP.NET取得物理路径和虚拟路...
·asp.net(c#)生成验证码代码,...
·asp.net页面回传与js调用服务...
·asp.net(C#版)实现登录验证码...
·DataGrid中DropDownList触发S...
·ASP.net 实现批量数据更新或...
·asp.net中DataBinder.Eval的...
·asp.net可输入的下拉框复合控...
·asp.net中常见的几种日历控件...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .