沈陽
摘要:ASP.NET運行時模型是用于進行Http請求處理的系統框架,其中HttpHandler對象是Http請求的處理中心,在HttpHandler中,ASP.NET框架才真正對客戶端請求的所有服務器資源做出處理和執行,并將處理后的結果放入Http響應流中,然后返回給客戶端。本文通過基于ASP.NET運行時模型實現圖片數字水印來闡述ASP.NET平臺通過HttpHandler對象對客戶端請求資源進行處理的過程。
關鍵詞:ASP.NET 運行時模型 HttpHandler 數字水印
中圖分類號:TP309.7 文獻標識碼:A 文章編號:1007-9416(2016)06-0000-00
現在是一個網絡信息高速發展的年代,我們在平時構建網站時需要給相關圖片添加數字水印,或者是為了營銷需要,或者是為了防止盜圖。如何在不夠買和不安裝圖片處理軟件的條件下來給圖片加水印,并且要求省時省力有效的實現該功能,本文通過ASP.NET運行時模型中的HttpHandler來實現網站的圖片數字水印功能。
1 相關概念
要想實現圖片的數字功能必須先了解ASP.NET運行時模型的執行過程。
1.1 ASP.NET運行時模型執行過程
當客戶端向IIS服務器發出一個HTTP請求時,IIS服務器會調用aspnet_isapi.dll將請求傳遞給ASP.NET運行時(Runtime),在ASP.NET運行時中HttpApplication組件會首先接收到請求,由它將請求依次傳遞給若干個HttpModule中進行請求過濾,如果請求不合法就會在某個HttpModule中拋棄從而結束請求過程。如果請求合法HttpApplication會將該請求傳遞到HttpHandler中,HttpHandler 是HTTP請求處理的終點,處理完畢后會將HTTP響應返回到客戶端。如圖1所示。
在本文中我們關注的是ASP.NET運行時模型如何通過HttpHandler 來處理Http請求。
1.2 數字水印的作用
數字水印是將一個能唯一確認身份的標識嵌入到圖片、音視頻、文檔等信息中。在不影響信息使用的情況下,不容易被別人修改或未經同意而使用。數字水印是保護知識產權、溯源的有效辦法。數字水印技術基本上具有下面幾個方面的特點:
(1)安全性:數字水印應該是安全的,難以偽造。(2)嵌入容量:指加入水印的數量,即對水印的容量需求很大。比如圖片加入水印后可以不影響原圖片的查閱。(3)健壯性:指即被未授權方擅自修改的困難度,能盡量保持該圖片的唯一性,比如下載加有數字水印的圖片,擅自修改會造成原圖信息的丟失并增加修改難度。
本文以圖片上添加網站圖標做為數字水印為例,闡述通過ASP.NET運行時模型實現數字水印的過程。如果圖片存在則在該圖片上動態添加水印,如果圖片不存在則在該圖片顯示的位置顯示一個默認圖片。
1.2 數字水印的實現方式選擇
(1)直接編輯每張圖片。這種方式需要大量的人力來進行這樣的工作。(2)編程實現批量編輯圖片,這種方式較之于第一種方式節省人力,效率高,但原始圖片丟失了。(3)在顯示圖片時,動態添加數字水印效果。這種方式較之于前兩種來說比較可行,可使用ASP.NET運行時模型通過HttpHandler來實現。
2 實現結果及分析
以下以圖片上添加網站圖標做為數字水印為例,說明ASP.NET運行時模型在處理Http請求中的應用,并使用HttpHandler實現圖片的數字水印的實現步驟:
(1)準備一張默認圖片和一張做為水印的網站圖標圖片。
(2)創建名為BookCoverProcess類來生成數字水印,該類實現了IHttpHandler接口。
(3)實現IHttpHandler類的ProcessRequest方法。該方法是HttpHandler類的核心方法,用于最終的請求處理。
當用戶訪問某張圖片時,獲取圖片的URL并交到HttpHandler中進行處理,如果該圖片不存在,服務器將繪制一張默認圖片并交給客戶端,如果圖片存在,服務器將數字水印圖片繪制到當前圖片上。
3 結語
利用ASP.NET運行時模型中的HttpHandler進行Http請求中的圖片數字水印,可以在圖片上增加網站標識,能夠很好地保護著作權,防止他人盜用圖片,使用ASP.NET運行時模型還可以實現例如動態頁面靜態化、防盜鏈等其他功能,應用范圍相當豐富。
參考文獻
[1] (美)Adam Freeman精通ASP.NET 4.5(第5版)[M].北京:人民郵電出版社,2014.
[2] (美)Myers, G.J.軟件測試的藝術(原書第3版)[M].北京:機械工業出版社,2012.
[3] 胡琳.網站安全管理的技術性分析[J].微計算機信息,2005(14).
[4] 廖江福.基于HttpHandler的ASP.NET軟件RSA簽名研究[J]. 重慶工商大學學報,2010(1).