一、防盗链需求具体如下:
1、创建一个网站,网站下的images文件中有jpg图片资源,本网站的页面引起图片的相对路径后可以正常使用,正常显示。
2、创建第二个网站,网站下有一个页面引用了上一个网站中的jpg图片资源,结果不能正常显示图片资源,而会显示一个表示错误的图片。
二、创建站点:
1、创建新的文件夹,把自己所选的图片放入进去,也可以直接把图片放在桌面上面,然后添加一个aspx页面,插入图片,相关代码如下:(切记,图片jpg或许不一样,记得修改)
1、<img src="images/adv1.jpg">
2、<img src="images/adv2.jpg">
3、<img src="images/adv3.jpg">
2、创建盗链站点。创建第二个网站,添加aspx页面,引用第一个网站提供的三张图片,相关代码如下:
<p>上述图片来自上一个站点</p>
<img src="https://www.baidu.com/images/adv1.jpg">
<img src="https://www.baidu.com/images/adv2.jpg">
<img src="https://www.baidu.com/images/adv3.jpg">
三、防盗链操作
编写HtppHandler类:
public class PreventLink:HttpHandler{
public bool isReusable{
get{return true;}
}
public void ProcessRequest(HttpContext context){
//获取上次请求的URL
Uri lastUri=context.Request.UrlReferrer;
//获取把本次请求的URL
Uri currentUrl=contex.Request.Url;
//判断是否为盗链
if(lastUrl.Host!=currentUrl.Host||lastUrl.Port!=currentUrl.Port){
//获取“请勿盗链”警告提示图片路径
string errorlmagePath=contex.Requesgt.PhysicalApplicationPath+"Erro/defauult.jpf";
//发送至客户
context.Response.WriteFile(errorimagePath);
}
else{
context.Response.WriteFile(context.Request.PhysicalPath);
}
}
}
提示:盗链的判断依据:上次请求的主机和端口与本次请求的主机和端口是否一致,若不一致,则为盗链(页面中插入的图片需要单独请求)。