程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 圖片防盜鏈

圖片防盜鏈

編輯:C#入門知識

 

using System; 

using System.Web; 

 

 

/// <summary> 

/// ImageProtect 的摘要說明 

/// </summary> 

public class ImageProtect : IHttpHandler 

    public ImageProtect() 

    { 

        // 

        // TODO: 在此處添加構造函數邏輯 

        // 

    } 

    public void ProcessRequest(HttpContext context) 

    { 

        //判斷是否是本地引用,如果是則返回給客戶端正確的圖片, 

        //假設我們的網站的地址為http://localhost:6999,演示時可根據需要修改        

        if (context.Request.UrlReferrer.Host == "localhost"&&context.Request.UrlReferrer.Port==6999)                

        { 

            //設置客戶端緩沖中文件過期時間為0,即立即過期。 

            context.Response.Expires = 0;                                

            //清空服務器端為此會話開辟的輸出緩存 

            context.Response.Clear();                                     

            //獲得文件類型 

            context.Response.ContentType = "image/jpeg";                 

            //將請求文件寫入到服務器端為此會話開辟的輸出緩存中 

            context.Response.WriteFile(context.Request.PhysicalPath);    

            //將服務器端為此會話開辟的輸出緩存中的信息傳送到客戶端 

            context.Response.End();    

        } 

        else     //如果不是本地引用,則屬於盜鏈引用,返回給客戶端錯誤的圖片 

        { 

            //設置客戶端緩沖中文件過期時間為0,即立即過期。 

            context.Response.Expires = 0;                                 

            //清空服務器端為此會話開辟的輸出緩存 

            context.Response.Clear();                                    

            //獲得文件類型 

            context.Response.ContentType = "image/jpeg";                 

            //將特殊的報告錯誤的圖片文件寫入到服務器端為此會話開辟的輸出緩存中 

            context.Response.WriteFile("~/images/error.jpg");                     

            //將服務器端為此會話開辟的輸出緩存中的信息傳送到客戶端 

            context.Response.End(); 

        } 

 

    } 

    public bool IsReusable 

    { 

        get 

        { 

            return false; 

        } 

    } 

 

/*

* 在配置文件中

*<httpHandlers>

*<add verb="*" path="*.jpg" type="ImageProtect"/>

</httpHandlers>

*/   

摘自 幸福的豬的專欄

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