日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

防止盗链下载问题

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 防止盗链下载问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
經常在網絡上四處載東西,有時碰到直接拷貝一個類似 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了。

?

6、? 當然,這里只按例子給個思路,完全可以再根據自身情況擴展。下面有幾個參考的資源文章:

l???????? http://www.9seek.com/news/show.aspx?id=745&cid=12

l???????? http://www.9seek.com/news/show.aspx?id=521&cid=12

l???????? http://www.9seek.com/news/show.aspx?id=520&cid=12

l???????? http://msdn.microsoft.com/asp.net/using/building/web/default.aspx?pull=/library/en-us/dnaspp/html/URLRewriting.asp

總結

以上是生活随笔為你收集整理的防止盗链下载问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。