程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 整理: ASP.NET防盜鏈IHttpHandler源碼如何做的?

整理: ASP.NET防盜鏈IHttpHandler源碼如何做的?

編輯:.NET實例教程

解決方法:
(一)創建一個繼承了System.Web.IHttpHandler接口的類
在System.Web.IHttpHandler接口有兩個成員ProcessRequest()方法和IsReusable()屬性。ProcessRequest(System.Web.HttpContext context) 方法,除了用戶自定義中被要求處理的特殊的http請求。其中的參數 System.Web.HttpContext 類的實例裝入了一個http請求中http協議中要求的所有信息。其中System.Web.HttpContext 類中包含有屬性 Request 使得從客戶端發送過來的http請求信息的值可以被方便地讀取;屬性Response 它封裝了需要返回給客戶端的信息和操作。
IsReusable()屬性要置為true.

(二) 創建一個資源圖片的方法Real()
1.若是盜鏈服務器給其錯誤圖片。
2.若不是盜鏈服務器給其正常的圖片。
在Real()方法中用到了FileInfo 這個類去取得圖片的擴展名並用來判斷圖片的類型.

(三)  注意頁面的緩存(response.Expires=1;獲取和設置浏覽器上緩存的頁過期之前的分鐘數.如果用戶在頁過期之前返回同一頁,則顯示緩存的內容)

(四)配置應用程序擴展名映射
因為IIS在接收到ASPx頁面請求時,會為其自動加載一個C:\Windows\Micosoft.Net\Framework\v1.1.4322
\ASPnet_isapi.dll文件。
虛擬目錄和文件夾的屬性裡面的”執行許可”改為“純腳本”。
若是有多個Web.config那麼只要在總目錄下有就可以了,其它地方的均可刪除。
(五)在 Web.config這個網絡應用程序配置文件中加入注冊信息
<system.web>
<httpHandlers>
        <add verb = "*" path = "*.jpg\.IEf\.jpg\.jepg\.bmp\.png\.tif\.emf\.ras\.pnm\.pbm\.pgm
\.ppm\.rgb\.xbm\.xpm\.xwd\.did\.ico\.emf"type="HandlerExample.HttphandlerTest,HandlerExample"/>
.
.
</httpHandlers>
</system.web>\


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved