国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET 圖片防盜鏈的實現(xiàn)原理分析

2020-01-18 00:58:35
字體:
供稿:網(wǎng)友
那么我來介紹下圖片放盜鏈的一個方法
首先,添加個httpHandlers請求,WEBCONFIG部分配置節(jié)如下:
<httpHandlers>
<add verb="*" path="*.jpg" type="myhandler,App_Code"/>
</httpHandlers> 注意:對應(yīng)于system.web之下,別添錯了哦!
然后添加個class,取名為myhandler繼承于IHttpHandler
class原型如下:
復(fù)制代碼 代碼如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public class myhandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string FileName = context.Server.MapPath(context.Request.FilePath);
if (context.Request.UrlReferrer.Host == null)
{
context.Response.ContentType = "image/JPEG";
context.Response.WriteFile("~/images/no.png");//被替換圖片
}
else
{
if (context.Request.UrlReferrer.Host.IndexOf("localhost") > -1)//這里是你的域名
{
context.Response.ContentType = "image/JPEG";
context.Response.WriteFile(FileName);
}
else
{
context.Response.ContentType = "image/JPEG";
context.Response.WriteFile("~/images/no.png");
}
}
}
public bool IsReusable
{
get { return true; }
}
public myhandler()
{
}
}

myhandler繼承自IHttpHandler實現(xiàn)了對url來源來判斷jpg圖片是否被盜鏈,本class中以localhost為例,修改localhost和images/no.png參數(shù)即可
次方法也可應(yīng)用于URL偽靜態(tài)。
下一次聊下圖片與ASP.NET程序的服務(wù)器分離,歡迎大家光臨本站。

下面是補充
所謂URL靜態(tài)化(聲明下:這里說的是偽靜態(tài),真正網(wǎng)頁靜態(tài)化就不說了可以用最簡單的請求返回response實現(xiàn),但好像久而久之數(shù)據(jù)量會很龐大,所以就不說了)就是把動態(tài)的網(wǎng)頁看起來像靜態(tài)的一樣。如:aspnet.aspx?id=5 靜態(tài)化:aspnet-5.html或/aspnet/5

SEO(搜索引擎優(yōu)化),更青睞于靜態(tài)化的網(wǎng)頁,所以網(wǎng)頁靜態(tài)化對于專業(yè)的SEOer來說還是必須掌握的,下面我告訴大家一個方法來實現(xiàn)在ASP.NET下面的網(wǎng)頁靜態(tài)化。

下面給一個DEMO,下載地址://www.survivalescaperooms.com/codes/23902.html


這個DEMO實現(xiàn)了網(wǎng)頁的URL的偽靜態(tài),其原理通過匹配url的正則,來進行網(wǎng)頁重定向,這個DEMO里面有這么個config,<add virtualUrl="~/microsoft*.*" destinationUrl="~/default.aspx" />
也就是說請求microsoft.html,microsoft.shtml,microsoft.do都會映射到default.aspx

這個正則把URL重定向一個頁面,沒有帶參數(shù),我先來介紹下帶參數(shù)如何實現(xiàn),下面我加了這個規(guī)則
<add virtualUrl="~/default-([0-9]*)" destinationUrl="~/default.aspx?id=$1" />
這個正則匹配了,這樣的URL(假設(shè)http://www.xx.com/是你的域名), www.xx.com/microsoft-123 映射到www.xx.com/default.aspx?id=123
那么就實現(xiàn)了參數(shù)的傳遞

多個參數(shù)的傳遞可以用如下正則實現(xiàn),各位高手想用什么樣的靜態(tài)化規(guī)則就自己寫正則怎么實現(xiàn)吧,下面我給出一種目錄化的URL偽靜態(tài)規(guī)則
<add virtualUrl="~/default/([a-zA-Z0-9]*)/([a-zA-Z0-9]*)" destinationUrl="~/default.aspx?par1=$1&par2=$2" />這里要注意的就是&(&)
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 望都县| 佛山市| 当雄县| 呼图壁县| 拜泉县| 涟水县| 嘉鱼县| 湘乡市| 班玛县| 桂阳县| 北宁市| 商丘市| 泸西县| 平塘县| 临洮县| 安新县| 泸州市| 宜都市| 都江堰市| 湘乡市| 习水县| 蕲春县| 宜良县| 克什克腾旗| 内江市| 惠安县| 松江区| 顺义区| 广河县| 饶河县| 陆川县| 青铜峡市| 晋州市| 株洲市| 手游| 兴安县| 广丰县| 博罗县| 诸城市| 玉田县| 洛川县|